aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Krakov <krakov@gmail.org>2009-05-26 19:42:34 -0400
committerMike Frysinger <vapier@gentoo.org>2009-05-26 19:42:34 -0400
commit29ec1160374bad26d47eeb7ac2795456a1f3e6df (patch)
tree2af225caf05f999fbd8494f71a6a9c5696da65bc
parent68759edb6e6406bc954caf97a8436b7fb3eb5e2b (diff)
downloadbusybox-29ec1160374bad26d47eeb7ac2795456a1f3e6df.tar.gz
POSIX conformance documentation for busybox
Attached a start for POSIX conformance documentation for busybox (see TODO file and discussion last week). A table of all options as defined by POSIX and as implemented by busybox (see for a FreeBSD example http://people.freebsd.org/~schweikh/posix-utilities.html). Only the tools that are stand-alone applets are documented (not ash built-ins as 'read'), as there are multiple shells. When there are two versions (echo) the stand-alone version was checked. I think this may be the wrong way to go, as most users will probably use the built-in version - but which shell? The table was auto-generated by running, for each POSIX utility, latest git allyesconfig* "busybox <tool> --help" and parsing the output, and comparing that to tool options extracted from its man page at http://www.opengroup.org/onlinepubs/9699919799/. This means that it the usage string is not correct, the table is also wrong. I noticed that for 'kill', for example, the usage string does not mention the -s, -q, -o options. For each option is set whether it exists in busybox and if it is, is it compliant to the standard. Of course, checking compliance can only be done manually - a process which will probably take some time (see 'cat' for example). I didn't post the auto-generation script (python, ugly) because the table will now change manually; I can post it if there is anyone interested. As for the tools not implemented by busybox at all, I think most of them are indeed fairly esotetic. Some I was suprised to see missing are link, file, newgrp, unlink. * Well, almost allyesconfig - but nothing very POSIX-y was disabled. Signed-off-by: David Krakov <krakov@gmail.org> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-rw-r--r--docs/posix_conformance.txt698
1 files changed, 698 insertions, 0 deletions
diff --git a/docs/posix_conformance.txt b/docs/posix_conformance.txt
new file mode 100644
index 000000000..5f1680904
--- /dev/null
+++ b/docs/posix_conformance.txt
@@ -0,0 +1,698 @@
+
+Busybox POSIX conformance table
+
+See POSIX documentation (1003.1-2008) here:
+http://www.opengroup.org/onlinepubs/9699919799/
+And the complete list of all utilities that POSIX covers:
+http://www.opengroup.org/onlinepubs/9699919799/utilities/utilities.html
+
+This listing is a work in progress, and currently only covers
+tool options (not operands, enviroment variables, return codes, etc..).
+For each option it is set if it (a) exists and (b) compliant to POSIX 2008.
+Some options exist but there is no value in the 'compliant' column: that
+means no one has yet bothered to make sure that the option does what it is
+required to do.
+
+-----------------------------------------------
+
+POSIX Tools supported only as shell built-ins (ash shell):
+ alias, bg, cd, fg, getopts, hash, jobs, read, type, umask, ulimit,
+ unalias, wait, write
+
+POSIX Tools not supported:
+ asa, at, batch, bc, c99, command, compress, csplit, ex, fc, file,
+ gencat, getconf, iconv, join, link, locale, localedef, lp, m4,
+ mailx, newgrp, nl, paste, pathchk, pax, pr, qalter, qdel, qhold, qmove,
+ qmsg, qrerun, qrls, qselect, qsig, qstat, qsub, tabs, talk, tput,
+ tsort, unlink, uucp, uustat, uux
+
+POSIX Tools not supported (DEVELOPMENT):
+ admin, cflow, ctags, cxref, delta, fort77, get, lex, make, nm, prs, rmdel,
+ sact, sccs, strip, unget, val, what, yacc
+
+
+POSIX Tools supported:
+
+Note: echo, printf, kill, pwd documented here as stand-alone applets,
+ not as ash built-ins.
+
+
+ar POSIX options
+ option | exists | compliant | remarks
+ -C | no | no |
+ -T | no | no |
+ -a | no | no |
+ -b | no | no |
+ -c | no | no |
+ -d | no | no |
+ -i | no | no |
+ -m | no | no |
+ -p | yes | |
+ -q | no | no |
+ -r | no | no |
+ -s | no | no |
+ -t | yes | |
+ -u | no | no |
+ -v | yes | |
+ -x | yes | |
+ar Busybox specific options:
+ -o
+
+awk POSIX options
+ option | exists | compliant | remarks
+ -F ERE | yes | |
+ -f progfile | yes | |
+ -v assignment | yes | |
+awk Busybox specific options: None
+
+basename POSIX options: None
+basename Busybox specific options: None
+
+cal POSIX options: None
+cal Busybox specific options:
+ -y, -j
+
+cat POSIX options
+ option | exists | compliant | remarks
+ -u | yes | no | option is ignored
+cat Busybox specific options: None
+
+chgrp POSIX options
+ option | exists | compliant | remarks
+ -H | yes | |
+ -L | yes | |
+ -P | yes | |
+ -R | yes | |
+ -h | yes | |
+chgrp Busybox specific options:
+ -f, -c, -v
+
+chmod POSIX options
+ option | exists | compliant | remarks
+ -R | yes | yes |
+chmod Busybox specific options:
+ -f, -v, -c
+
+chown POSIX options
+ option | exists | compliant | remarks
+ -H | yes | |
+ -L | yes | |
+ -P | yes | |
+ -R | yes | |
+ -h | yes | |
+chown Busybox specific options:
+ -f, -c, -v
+
+cksum POSIX options: None
+cksum Busybox specific options: None
+
+cmp POSIX options
+ option | exists | compliant | remarks
+ -l | yes | yes |
+ -s | yes | yes |
+cmp Busybox specific options:
+
+
+comm POSIX options
+ option | exists | compliant | remarks
+ -1 | yes | |
+ -2 | yes | |
+ -3 | yes | |
+comm Busybox specific options: None
+
+cp POSIX options
+ option | exists | compliant | remarks
+ -H | yes | |
+ -L | yes | |
+ -P | yes | |
+ -R | yes | |
+ -f | yes | |
+ -i | yes | |
+ -p | yes | |
+cp Busybox specific options:
+ -d, -a, -s, -c, -r, -l
+
+crontab POSIX options
+ option | exists | compliant | remarks
+ -e | yes | |
+ -l | yes | |
+ -r | yes | |
+crontab Busybox specific options:
+ -u, -c
+
+cut POSIX options
+ option | exists | compliant | remarks
+ -b list | yes | |
+ -c list | yes | |
+ -d delim | yes | |
+ -f list | yes | |
+ -n | yes | |
+ -s | yes | |
+cut Busybox specific options: None
+
+date POSIX options
+ option | exists | compliant | remarks
+ -u | yes | yes |
+date Busybox specific options:
+ -I[SPEC], -d TIME, -r FILE, -R, -D FMT
+
+dd POSIX options: None
+dd Busybox specific options:
+
+
+df POSIX options
+ option | exists | compliant | remarks
+ -P | yes | |
+ -k | yes | |
+ -t | no | no |
+df Busybox specific options:
+ -a, -m, -B SIZE, -i, -h
+
+diff POSIX options
+ option | exists | compliant | remarks
+ -C n | no | no |
+ -U n | yes | |
+ -b | yes | |
+ -c | no | no |
+ -e | no | no |
+ -f | no | no |
+ -r | yes | |
+ -u | no | no |
+diff Busybox specific options:
+ -d, -a, -s, -t, -L, -N, -i, -T, -w, -q, -S
+
+dirname POSIX options: None
+dirname Busybox specific options: None
+
+du POSIX options
+ option | exists | compliant | remarks
+ -H | yes | |
+ -L | yes | |
+ -a | yes | |
+ -k | yes | |
+ -s | yes | |
+ -x | yes | |
+du Busybox specific options:
+ -c, -m, -h, -d N, -l
+
+echo POSIX options: None
+echo Busybox specific options:
+ -e, -E, -n
+
+ed POSIX options
+ option | exists | compliant | remarks
+ -p string | no | no |
+ -s | no | no |
+ed Busybox specific options: None
+
+env POSIX options
+ option | exists | compliant | remarks
+ -i | no | no |
+env Busybox specific options:
+ -u, -, -i
+
+expand POSIX options
+ option | exists | compliant | remarks
+ -t tablist | yes | |
+expand Busybox specific options:
+ --tabs=N, -i, --initial
+
+expr POSIX options: None
+expr Busybox specific options:
+
+
+false POSIX options: None
+false Busybox specific options: None
+
+find POSIX options
+ option | exists | compliant | remarks
+ -H | no | no |
+ -L | no | no |
+find Busybox specific options:
+ -group NAME, -mtime DAYS, -print, -maxdepth N, -exec CMD ARG ;, -newer FILE, -context, -iname PATTERN, -follow, -depth, -xdev, -inum N, -type X, -print0, -mindepth N, -mmin MINS, -regex PATTERN, -prune, -path PATTERN, -user NAME, -delete, -perm NNN, -name PATTERN, -size N[bck]
+
+fold POSIX options
+ option | exists | compliant | remarks
+ -b | yes | |
+ -s | yes | |
+ -w width | yes | |
+fold Busybox specific options: None
+
+fuser POSIX options
+ option | exists | compliant | remarks
+ -c | no | no |
+ -f | no | no |
+ -u | no | no |
+fuser Busybox specific options:
+ -m, -k, -4, -SIGNAL, -6, -s
+
+grep POSIX options
+ option | exists | compliant | remarks
+ -E | yes | |
+ -F | yes | |
+ -c | yes | |
+ -e pattern_list | yes | |
+ -f pattern_file | yes | |
+ -i | yes | |
+ -l | yes | |
+ -n | yes | |
+ -q | yes | |
+ -s | yes | |
+ -v | yes | |
+ -x | no | no |
+grep Busybox specific options:
+ -A, -C, -B, -L, -H, -o, -h, -w, -r, -z, -m MAX
+
+head POSIX options
+ option | exists | compliant | remarks
+ -n number | yes | yes |
+head Busybox specific options:
+ -v, -c NUM, -q
+
+id POSIX options
+ option | exists | compliant | remarks
+ -G | yes | |
+ -g | yes | |
+ -n | yes | |
+ -r | yes | |
+ -u | yes | |
+id Busybox specific options:
+ -Z
+
+ipcrm POSIX options
+ option | exists | compliant | remarks
+ -M shmkey | no | no |
+ -Q msgkey | no | no |
+ -S semkey | no | no |
+ -m shmid | no | no |
+ -q msgid | no | no |
+ -s semid | no | no |
+ipcrm Busybox specific options:
+ -mM, -qQ, -sS
+
+ipcs POSIX options
+ option | exists | compliant | remarks
+ -a | yes | |
+ -b | no | no |
+ -c | yes | |
+ -m | yes | |
+ -o | no | no |
+ -p | yes | |
+ -q | yes | |
+ -s | yes | |
+ -t | yes | |
+ipcs Busybox specific options:
+ -l, -i, -u
+
+kill POSIX options
+ option | exists | compliant | remarks
+ -l | yes | yes |
+ -s signal_name | yes | yes |
+ -signal_name | yes | yes |
+ -signal_number | yes | yes |
+kill Busybox specific options:
+ -q, -o
+
+ln POSIX options
+ option | exists | compliant | remarks
+ -L | no | no |
+ -P | no | no |
+ -f | yes | |
+ -s | yes | |
+ln Busybox specific options:
+ -S suf, -n, -b
+
+logger POSIX options: None
+logger Busybox specific options:
+ -p PRIO, -t TAG, -s
+
+logname POSIX options: None
+logname Busybox specific options: None
+
+ls POSIX options
+ option | exists | compliant | remarks
+ -1 | yes | |
+ -A | yes | |
+ -C | yes | |
+ -F | yes | |
+ -H | no | no |
+ -L | yes | |
+ -R | yes | |
+ -S | yes | |
+ -a | yes | |
+ -c | yes | |
+ -d | yes | |
+ -f | no | no |
+ -g | no | no |
+ -i | yes | |
+ -k | yes | |
+ -l | yes | |
+ -m | no | no |
+ -n | yes | |
+ -o | no | no |
+ -p | yes | |
+ -q | no | no |
+ -r | yes | |
+ -s | yes | |
+ -t | yes | |
+ -u | yes | |
+ -x | yes | |
+ls Busybox specific options:
+ --color, -T NUM, -K, -X, -Z, -e, -h, -v, -w NUM
+
+man POSIX options
+ option | exists | compliant | remarks
+ -k | no | no |
+man Busybox specific options:
+ -a Display all pages
+
+
+mesg POSIX options: None
+mesg Busybox specific options: None
+
+mkdir POSIX options
+ option | exists | compliant | remarks
+ -m mode | yes | |
+ -p | yes | |
+mkdir Busybox specific options:
+ -Z
+
+mkfifo POSIX options
+ option | exists | compliant | remarks
+ -m mode | yes | yes |
+mkfifo Busybox specific options:
+ -Z
+
+more POSIX options
+ option | exists | compliant | remarks
+ -c | no | no |
+ -e | no | no |
+ -i | no | no |
+ -n number | no | no |
+ -p command | no | no |
+ -s | no | no |
+ -t tagstring | no | no |
+ -u | no | no |
+more Busybox specific options: None
+
+mv POSIX options
+ option | exists | compliant | remarks
+ -f | yes | |
+ -i | yes | |
+mv Busybox specific options: None
+
+nice POSIX options
+ option | exists | compliant | remarks
+ -n increment | yes | |
+nice Busybox specific options: None
+
+nohup POSIX options: None
+nohup Busybox specific options: None
+
+od POSIX options
+ option | exists | compliant | remarks
+ -A address_base | no | no |
+ -N count | no | no |
+ -b | no | no |
+ -c | no | no |
+ -d | no | no |
+ -j skip | no | no |
+ -o | no | no |
+ -s | no | no |
+ -t type_string | no | no |
+ -v | no | no |
+ -x | no | no |
+od Busybox specific options: None
+
+patch POSIX options
+ option | exists | compliant | remarks
+ -D define | no | no |
+ -N | no | no |
+ -R | yes | |
+ -b | no | no |
+ -c | no | no |
+ -d dir | no | no |
+ -e | no | no |
+ -i patchfile | yes | |
+ -l | no | no |
+ -n | no | no |
+ -o outfile | no | no |
+ -p num | yes | |
+ -r rejectfile | no | no |
+ -u | no | no |
+patch Busybox specific options: None
+
+printf POSIX options: None
+printf Busybox specific options: None
+
+ps POSIX options
+ option | exists | compliant | remarks
+ -A | no | no |
+ -G grouplist | no | no |
+ -U userlist | no | no |
+ -a | no | no |
+ -d | no | no |
+ -e | no | no |
+ -f | no | no |
+ -g grouplist | no | no |
+ -l | no | no |
+ -n namelist | no | no |
+ -o format | yes | no | not supported: ruser, group, rgroup, pcpu
+ -p proclist | no | no |
+ -t termlist | no | no |
+ -u userlist | no | no |
+ps Busybox specific options: None
+
+pwd POSIX options
+ option | exists | compliant | remarks
+ -L | no | no |
+ -P | no | no |
+pwd Busybox specific options: None
+
+renice POSIX options
+ option | exists | compliant | remarks
+ -g | yes | |
+ -n increment | yes | |
+ -p | yes | |
+ -u | yes | |
+renice Busybox specific options: None
+
+rm POSIX options
+ option | exists | compliant | remarks
+ -R | yes | |
+ -f | yes | |
+ -i | yes | |
+ -r | yes | |
+rm Busybox specific options: None
+
+rmdir POSIX options
+ option | exists | compliant | remarks
+ -p | yes | |
+rmdir Busybox specific options:
+ --parents
+
+sed POSIX options
+ option | exists | compliant | remarks
+ -e script | yes | |
+ -f script_file | yes | |
+ -n | yes | |
+sed Busybox specific options:
+ -i, -r
+
+sh POSIX options
+ option | exists | compliant | remarks
+ -c | no | no |
+ -i | no | no |
+ -s | no | no |
+sh Busybox specific options: None
+
+sleep POSIX options: None
+sleep Busybox specific options: None
+
+sort POSIX options
+ option | exists | compliant | remarks
+ -C | no | no |
+ -b | yes | |
+ -c | yes | |
+ -d | yes | |
+ -f | yes | |
+ -i | yes | |
+ -k keydef | yes | |
+ -m | no | no |
+ -n | yes | |
+ -o output | yes | |
+ -r | yes | |
+ -t char | yes | |
+ -u | yes | |
+sort Busybox specific options:
+ -mST, -g, -M, -s, -z
+
+split POSIX options
+ option | exists | compliant | remarks
+ -a suffix_length | yes | |
+ -b n | yes | |
+ -b nk | yes | |
+ -b nm | yes | |
+ -l line_count | yes | |
+split Busybox specific options: None
+
+strings POSIX options
+ option | exists | compliant | remarks
+ -a | yes | |
+ -n number | yes | |
+ -t format | no | no |
+strings Busybox specific options:
+ -o, -f
+
+stty POSIX options
+ option | exists | compliant | remarks
+ -a | yes | |
+ -g | yes | |
+stty Busybox specific options:
+ -F DEVICE
+
+tail POSIX options
+ option | exists | compliant | remarks
+ -c number | yes | yes |
+ -f | yes | yes |
+ -n number | yes | yes |
+tail Busybox specific options:
+ -v, -q, -s SEC
+
+tee POSIX options
+ option | exists | compliant | remarks
+ -a | yes | |
+ -i | yes | |
+tee Busybox specific options: None
+
+test POSIX options: None
+test Busybox specific options: None
+
+time POSIX options
+ option | exists | compliant | remarks
+ -p | no | no |
+time Busybox specific options:
+ -v
+
+touch POSIX options
+ option | exists | compliant | remarks
+ -a | no | no |
+ -c | yes | |
+ -d date_time | no | no |
+ -m | no | no |
+ -r ref_file | no | no |
+ -t time | no | no |
+touch Busybox specific options: None
+
+tr POSIX options
+ option | exists | compliant | remarks
+ -C | no | no |
+ -c | yes | |
+ -d | yes | |
+ -s | yes | |
+tr Busybox specific options: None
+
+true POSIX options: None
+true Busybox specific options: None
+
+tty POSIX options: None
+tty Busybox specific options:
+ -s
+
+uname POSIX options
+ option | exists | compliant | remarks
+ -a | yes | |
+ -m | yes | |
+ -n | yes | |
+ -r | yes | |
+ -s | yes | |
+ -v | yes | |
+uname Busybox specific options:
+ -p
+
+uncompress POSIX options
+ option | exists | compliant | remarks
+ -c | yes | |
+ -f | yes | |
+ -v | no | no |
+uncompress Busybox specific options: None
+
+unexpand POSIX options
+ option | exists | compliant | remarks
+ -a | yes | |
+ -t tablist | yes | |
+unexpand Busybox specific options:
+ --tabs=N, -f, --first-only, --all
+
+uniq POSIX options
+ option | exists | compliant | remarks
+ -c | yes | |
+ -d | yes | |
+ -f fields | yes | |
+ -s chars | yes | |
+ -u | yes | |
+uniq Busybox specific options:
+ -w N
+
+uudecode POSIX options
+ option | exists | compliant | remarks
+ -o outfile | no | no |
+uudecode Busybox specific options: None
+
+uuencode POSIX options
+ option | exists | compliant | remarks
+ -m | yes | |
+uuencode Busybox specific options: None
+
+vi POSIX options
+ option | exists | compliant | remarks
+ -R | yes | |
+ -c command | yes | |
+ -r | no | no |
+ -t tagstring | no | no |
+ -w size | no | no |
+vi Busybox specific options:
+ -H
+
+wc POSIX options
+ option | exists | compliant | remarks
+ -c | yes | |
+ -l | yes | |
+ -m | no | no |
+ -w | yes | |
+wc Busybox specific options:
+ -L
+
+who POSIX options
+ option | exists | compliant | remarks
+ -H | no | no |
+ -T | no | no |
+ -a | yes | |
+ -b | no | no |
+ -d | no | no |
+ -l | no | no |
+ -m | no | no |
+ -p | no | no |
+ -q | no | no |
+ -r | no | no |
+ -s | no | no |
+ -t | no | no |
+ -u | no | no |
+who Busybox specific options: None
+
+xargs POSIX options
+ option | exists | compliant | remarks
+ -E eofstr | no | no |
+ -I replstr | no | no |
+ -L number | no | no |
+ -n number | yes | |
+ -p | yes | |
+ -s size | yes | |
+ -t | yes | |
+ -x | yes | |
+xargs Busybox specific options:
+ -e[STR], -0, -r
+
+zcat POSIX options: None
+zcat Busybox specific options: None
+