Update POSIX compliance table
authorDenys Vlasenko <vda.linux@googlemail.com>
Fri, 12 Jun 2009 13:32:51 +0000 (15:32 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Fri, 12 Jun 2009 13:32:51 +0000 (15:32 +0200)
Signed-off-by: Max Panasenkov <panmax@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
docs/posix_conformance.txt

index 5f16809..a9176f5 100644 (file)
@@ -4,7 +4,7 @@ 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
+http://www.opengroup.org/onlinepubs/9699919799/idx/utilities.html
 
 This listing is a work in progress, and currently only covers 
 tool options (not operands, enviroment variables, return codes, etc..).
@@ -37,7 +37,7 @@ Note: echo, printf, kill, pwd documented here as stand-alone applets,
       not as ash built-ins.
 
 
-ar POSIX options
+ar POSIX options ********************* Failed to recognize zip & tar (did not compare to regular ar)
  option           | exists | compliant | remarks
   -C              |  no    | no        |  
   -T              |  no    | no        |  
@@ -93,10 +93,10 @@ chmod POSIX options
 chmod Busybox specific options: 
   -f, -v, -c
 
-chown POSIX options
+chown POSIX options *********************************************
  option           | exists | compliant | remarks
-  -H              |  yes   |           |  
-  -L              |  yes   |           |  
+  -H              |  yes   |           | It seems like all flags are supported (according to printout), but
+  -L              |  yes   |           |  it fails to work on my machine
   -P              |  yes   |           |  
   -R              |  yes   |           |  
   -h              |  yes   |           |  
@@ -115,20 +115,20 @@ cmp Busybox specific options:
 
 comm POSIX options
  option           | exists | compliant | remarks
-  -1              |  yes   |           |  
-  -2              |  yes   |           |  
-  -3              |  yes   |           |  
+  -1              |  yes   | yes       |  
+  -2              |  yes   | yes       |  
+  -3              |  yes   | 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   |           |  
+  -H              |  yes   | yes       |  
+  -L              |  yes   | yes       |  
+  -P              |  yes   | yes       |  
+  -R              |  yes   | yes       |  
+  -f              |  yes   | yes       |  
+  -i              |  yes   | yes       |  
+  -p              |  yes   | yes       |  
 cp Busybox specific options: 
   -d, -a, -s, -c, -r, -l
 
@@ -142,12 +142,12 @@ crontab Busybox specific options:
 
 cut POSIX options
  option           | exists | compliant | remarks
-  -b list         |  yes   |           |  
-  -c list         |  yes   |           |  
-  -d delim        |  yes   |           |  
-  -f list         |  yes   |           |  
-  -n              |  yes   |           |  
-  -s              |  yes   |           |  
+  -b list         |  yes   | yes       |  
+  -c list         |  yes   | yes       |  
+  -d delim        |  yes   | yes       |  
+  -f list         |  yes   | yes       |  
+  -n              |  yes   | yes       |  
+  -s              |  yes   | yes       |  
 cut Busybox specific options: None
 
 date POSIX options
@@ -156,17 +156,40 @@ date POSIX options
 date Busybox specific options: 
   -I[SPEC], -d TIME, -r FILE, -R, -D FMT
 
-dd POSIX options: None
+dd POSIX options:
+ option           | exists | compliant | remarks
+  if              |  yes   |           |
+  of              |  yes   |           |
+  ibs             |  yes   |           |
+  obs             |  yes   |           |
+  bs              |  yes   |           |
+  cbs             |  no    | no        |
+  skip            |  yes   |           |
+  seek            |  yes   |           |
+  count           |  yes   |           |
+  conv=ascii      |  no    | no        | 
+  conv=ebcdic     |  no    | no        |
+  conv=ibm        |  no    | no        |
+  conv=block      |  no    | no        |
+  conv=unblock    |  no    | no        |
+  conv=lcase      |  no    | no        |
+  conv=ucase      |  no    | no        |
+  conv=swap       |  no    | no        |
+  conv=noerror    |  yes   |           |
+  conv=notrunc    |  yes   |           |
+  conv=sync       |  yes   |           |
 dd Busybox specific options: 
-  
+ conv=fsync
 
 df POSIX options
  option           | exists | compliant | remarks
-  -P              |  yes   |           |  
-  -k              |  yes   |           |  
+  -P              |  yes   | yes       |  
+  -k              |  yes   | yes       | 
   -t              |  no    | no        |  
 df Busybox specific options: 
   -a, -m, -B SIZE, -i, -h
+Remark:
+- It seems that GNU df doesnt rount percents up in its output (thus its results are a bit different)
 
 diff POSIX options
  option           | exists | compliant | remarks
@@ -195,9 +218,12 @@ du POSIX options
 du Busybox specific options: 
   -c, -m, -h, -d N, -l
 
+
 echo POSIX options: None
+ option           | exists | compliant | remarks
+  -n              |  yes   | yes       | The result of -n is "implementation-defined"
 echo Busybox specific options: 
-  -e, -E, -n
+  -e, -E
 
 ed POSIX options
  option           | exists | compliant | remarks
@@ -213,13 +239,31 @@ env Busybox specific options:
 
 expand POSIX options
  option           | exists | compliant | remarks
-  -t tablist      |  yes   |           |  
+  -t tablist      |  yes   | yes       | 
 expand Busybox specific options: 
   --tabs=N, -i, --initial
 
-expr POSIX options: None
-expr Busybox specific options: 
-  
+expr POSIX operations:
+ option           | exists | compliant | remarks
+  |               |  yes   |  yes      |  
+  &               |  yes   |  yes      |  
+  =               |  yes   |  yes      |  
+  >               |  yes   |  yes      |  
+  >=              |  yes   |  yes      |  
+  <=              |  yes   |  yes      |  
+  <               |  yes   |  yes      |  
+  !=              |  yes   |  yes      |  
+  +               |  yes   |  yes      |  
+  -               |  yes   |  yes      |  
+  *               |  yes   |  yes      |  
+  /               |  yes   |  yes      |  
+  %               |  yes   |  yes      |  
+  :               |  yes   |  yes      |  
+  (expr)          |  yes   |  yes      |  
+  integer         |  yes   |  yes      |  
+  string          |  yes   |  yes      |  
+expr Busybox specific operations: 
+  match, substr, index, length, quote
 
 false POSIX options: None
 false Busybox specific options: None
@@ -233,9 +277,9 @@ find Busybox specific options:
 
 fold POSIX options
  option           | exists | compliant | remarks
-  -b              |  yes   |           |  
-  -s              |  yes   |           |  
-  -w width        |  yes   |           |  
+  -b              |  yes   | yes       |  
+  -s              |  yes   | yes       |  
+  -w width        |  yes   | yes       |  
 fold Busybox specific options: None
 
 fuser POSIX options
@@ -271,11 +315,11 @@ head Busybox specific options:
 
 id POSIX options
  option           | exists | compliant | remarks
-  -G              |  yes   |           |  
-  -g              |  yes   |           |  
-  -n              |  yes   |           |  
-  -r              |  yes   |           |  
-  -u              |  yes   |           |  
+  -G              |  yes   | yes       |  
+  -g              |  yes   | yes       |  
+  -n              |  yes   | yes       |  
+  -r              |  yes   | yes       |  
+  -u              |  yes   | yes       |  
 id Busybox specific options: 
   -Z
 
@@ -317,8 +361,8 @@ ln POSIX options
  option           | exists | compliant | remarks
   -L              |  no    | no        |  
   -P              |  no    | no        |  
-  -f              |  yes   |           |  
-  -s              |  yes   |           |  
+  -f              |  yes   | yes       |  
+  -s              |  yes   | yes       |  
 ln Busybox specific options: 
   -S suf, -n, -b
 
@@ -331,32 +375,32 @@ logname Busybox specific options: None
 
 ls POSIX options
  option           | exists | compliant | remarks
-  -1              |  yes   |           |  
-  -A              |  yes   |           |  
-  -C              |  yes   |           |  
-  -F              |  yes   |           |  
+  -1              |  yes   | yes       |  
+  -A              |  yes   | yes       |  
+  -C              |  yes   | yes       |  
+  -F              |  yes   | yes       | And more: '=' for sockets (not defined by POSIX)
   -H              |  no    | no        |  
-  -L              |  yes   |           |  
-  -R              |  yes   |           |  
-  -S              |  yes   |           |  
-  -a              |  yes   |           |  
-  -c              |  yes   |           |  
-  -d              |  yes   |           |  
+  -L              |  yes   | yes       | But coloring may be wrong (at least POSIX does not require correct colors :) )
+  -R              |  yes   | yes       |  
+  -S              |  yes   | yes       |  
+  -a              |  yes   | yes       |  
+  -c              |  yes   | no        | Sorts output with '-l' (should only show ctime with '-l', and sort only with '-t')
+  -d              |  yes   | no        | When invoked together with '-L' should read symbolic links, and doesn't
   -f              |  no    | no        |  
   -g              |  no    | no        |  
-  -i              |  yes   |           |  
-  -k              |  yes   |           |  
-  -l              |  yes   |           |  
+  -i              |  yes   | yes       |  
+  -k              |  yes   | no        | Does something completely unrelated! (Lists security context instead of specifying block size)
+  -l              |  yes   | yes       |  
   -m              |  no    | no        |  
-  -n              |  yes   |           |  
-  -o              |  no    | no        |  
-  -p              |  yes   |           |  
+  -n              |  yes   | no        | Works correctly only together with '-l' (but POSIX requires '-l' to be implicitly assumed)
+  -o              |  no    | no        | 
+  -p              |  yes   | yes       |  
   -q              |  no    | no        |  
-  -r              |  yes   |           |  
-  -s              |  yes   |           |  
-  -t              |  yes   |           |  
-  -u              |  yes   |           |  
-  -x              |  yes   |           |  
+  -r              |  yes   | yes       |  
+  -s              |  yes   | yes       |  
+  -t              |  yes   | yes       |  
+  -u              |  yes   | yes       | 
+  -x              |  yes   | yes       |  
 ls Busybox specific options: 
   --color, -T NUM, -K, -X, -Z, -e, -h, -v, -w NUM
 
@@ -372,8 +416,8 @@ mesg Busybox specific options: None
 
 mkdir POSIX options
  option           | exists | compliant | remarks
-  -m mode         |  yes   |           |  
-  -p              |  yes   |           |  
+  -m mode         |  yes   | yes       |  
+  -p              |  yes   | yes       |  
 mkdir Busybox specific options: 
   -Z
 
@@ -397,13 +441,13 @@ more Busybox specific options: None
 
 mv POSIX options
  option           | exists | compliant | remarks
-  -f              |  yes   |           |  
-  -i              |  yes   |           |  
+  -f              |  yes   | yes       |  
+  -i              |  yes   | yes       |  
 mv Busybox specific options: None
 
 nice POSIX options
  option           | exists | compliant | remarks
-  -n increment    |  yes   |           |  
+  -n increment    |  yes   | yes       |  
 nice Busybox specific options: None
 
 nohup POSIX options: None
@@ -428,16 +472,16 @@ patch POSIX options
  option           | exists | compliant | remarks
   -D define       |  no    | no        |  
   -N              |  no    | no        |  
-  -R              |  yes   |           |  
+  -R              |  yes   | yes       |  
   -b              |  no    | no        |  
   -c              |  no    | no        |  
   -d dir          |  no    | no        |  
   -e              |  no    | no        |  
-  -i patchfile    |  yes   |           |  
+  -i patchfile    |  yes   | yes       |  
   -l              |  no    | no        |  
   -n              |  no    | no        |  
   -o outfile      |  no    | no        |  
-  -p num          |  yes   |           |  
+  -p num          |  yes   | yes       |  
   -r rejectfile   |  no    | no        |  
   -u              |  no    | no        |  
 patch Busybox specific options: None
@@ -471,23 +515,23 @@ pwd Busybox specific options: None
 
 renice POSIX options
  option           | exists | compliant | remarks
-  -g              |  yes   |           |  
-  -n increment    |  yes   |           |  
-  -p              |  yes   |           |  
-  -u              |  yes   |           |  
+  -g              |  yes   | yes       |  
+  -n increment    |  yes   | yes       | Note POSIX allows only to run with this option (busybox also allows to run without '-n' and set niceness directly)
+  -p              |  yes   | yes       |  
+  -u              |  yes   | yes       |  
 renice Busybox specific options: None
 
 rm POSIX options
  option           | exists | compliant | remarks
-  -R              |  yes   |           |  
-  -f              |  yes   |           |  
-  -i              |  yes   |           |  
-  -r              |  yes   |           |  
+  -R              |  yes   | yes       |  
+  -f              |  yes   | yes       |  
+  -i              |  yes   | yes       |  
+  -r              |  yes   | yes       |  
 rm Busybox specific options: None
 
 rmdir POSIX options
  option           | exists | compliant | remarks
-  -p              |  yes   |           |  
+  -p              |  yes   | yes       |  
 rmdir Busybox specific options: 
   --parents
 
@@ -512,42 +556,42 @@ 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   |           |  
+  -b              |  yes   | yes       |  
+  -c              |  yes   | yes       |  
+  -d              |  yes   | yes       |  
+  -f              |  yes   | yes       |  
+  -i              |  yes   | yes       | But is not like GNU sort, which isn't! (try to sort 'a\nA\nB\nb' with and without -f)
+  -k keydef       |  yes   |           | 
   -m              |  no    | no        |  
-  -n              |  yes   |           |  
-  -o output       |  yes   |           |  
-  -r              |  yes   |           |  
+  -n              |  yes   | yes       |  
+  -o output       |  yes   | yes       |  
+  -r              |  yes   | yes       |  
   -t char         |  yes   |           |  
-  -u              |  yes   |           |  
+  -u              |  yes   | 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   |           |  
+  -a suffix_length |  yes   | yes       |  
+  -b n            |  yes   | yes       |  
+  -b nk           |  yes   | yes       |  
+  -b nm           |  yes   | yes       |  
+  -l line_count   |  yes   | yes       |  
 split Busybox specific options: None
 
 strings POSIX options
  option           | exists | compliant | remarks
-  -a              |  yes   |           |  
-  -n number       |  yes   |           |  
+  -a              |  yes   | yes       |  
+  -n number       |  yes   | yes       |  
   -t format       |  no    | no        |  
 strings Busybox specific options: 
   -o, -f
 
 stty POSIX options
  option           | exists | compliant | remarks
-  -a              |  yes   |           |  
-  -g              |  yes   |           |  
+  -a              |  yes   | yes       |  
+  -g              |  yes   | yes       |  
 stty Busybox specific options: 
   -F DEVICE
 
@@ -561,8 +605,8 @@ tail Busybox specific options:
 
 tee POSIX options
  option           | exists | compliant | remarks
-  -a              |  yes   |           |  
-  -i              |  yes   |           |  
+  -a              |  yes   | yes       |  
+  -i              |  yes   | yes       |  
 tee Busybox specific options: None
 
 test POSIX options: None
@@ -577,7 +621,7 @@ time Busybox specific options:
 touch POSIX options
  option           | exists | compliant | remarks
   -a              |  no    | no        |  
-  -c              |  yes   |           |  
+  -c              |  yes   | yes       |  
   -d date_time    |  no    | no        |  
   -m              |  no    | no        |  
   -r ref_file     |  no    | no        |  
@@ -587,9 +631,9 @@ touch Busybox specific options: None
 tr POSIX options
  option           | exists | compliant | remarks
   -C              |  no    | no        |  
-  -c              |  yes   |           |  
-  -d              |  yes   |           |  
-  -s              |  yes   |           |  
+  -c              |  yes   | yes       |  
+  -d              |  yes   | yes       |  
+  -s              |  yes   | yes       |  
 tr Busybox specific options: None
 
 true POSIX options: None
@@ -601,36 +645,36 @@ tty Busybox specific options:
 
 uname POSIX options
  option           | exists | compliant | remarks
-  -a              |  yes   |           |  
-  -m              |  yes   |           |  
-  -n              |  yes   |           |  
-  -r              |  yes   |           |  
-  -s              |  yes   |           |  
-  -v              |  yes   |           |  
+  -a              |  yes   | yes       |  
+  -m              |  yes   | yes       |  
+  -n              |  yes   | yes       |  
+  -r              |  yes   | yes       |  
+  -s              |  yes   | yes       |  
+  -v              |  yes   | yes       |  
 uname Busybox specific options: 
   -p
 
 uncompress POSIX options
  option           | exists | compliant | remarks
-  -c              |  yes   |           |  
-  -f              |  yes   |           |  
+  -c              |  yes   | yes       |  
+  -f              |  yes   | yes       |  
   -v              |  no    | no        |  
 uncompress Busybox specific options: None
 
 unexpand POSIX options
  option           | exists | compliant | remarks
-  -a              |  yes   |           |  
-  -t tablist      |  yes   |           |  
+  -a              |  yes   | no        | POSIX requires converting two or more spaces to tabs, busybox converts one or more spaces
+  -t tablist      |  yes   | 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   |           |  
+  -c              |  yes   | yes       |  
+  -d              |  yes   | yes       |  
+  -f fields       |  yes   | yes       |  
+  -s chars        |  yes   | yes       |  
+  -u              |  yes   | yes       |  
 uniq Busybox specific options: 
   -w N
 
@@ -641,7 +685,7 @@ uudecode Busybox specific options: None
 
 uuencode POSIX options
  option           | exists | compliant | remarks
-  -m              |  yes   |           |  
+  -m              |  yes   | yes       |  
 uuencode Busybox specific options: None
 
 vi POSIX options
@@ -656,10 +700,10 @@ vi Busybox specific options:
 
 wc POSIX options
  option           | exists | compliant | remarks
-  -c              |  yes   |           |  
-  -l              |  yes   |           |  
+  -c              |  yes   | yes       |  
+  -l              |  yes   | yes       |  
   -m              |  no    | no        |  
-  -w              |  yes   |           |  
+  -w              |  yes   | yes       |  
 wc Busybox specific options: 
   -L
 
@@ -667,7 +711,7 @@ who POSIX options
  option           | exists | compliant | remarks
   -H              |  no    | no        |  
   -T              |  no    | no        |  
-  -a              |  yes   |           |  
+  -a              |  yes   | no        | just shows all
   -b              |  no    | no        |  
   -d              |  no    | no        |  
   -l              |  no    | no        |  
@@ -685,11 +729,11 @@ xargs POSIX options
   -E eofstr       |  no    | no        |  
   -I replstr      |  no    | no        |  
   -L number       |  no    | no        |  
-  -n number       |  yes   |           |  
-  -p              |  yes   |           |  
-  -s size         |  yes   |           |  
-  -t              |  yes   |           |  
-  -x              |  yes   |           |  
+  -n number       |  yes   | yes       |  
+  -p              |  yes   | yes       |  
+  -s size         |  yes   | yes       |  
+  -t              |  yes   | yes       |  
+  -x              |  yes   | yes       | 
 xargs Busybox specific options: 
   -e[STR], -0, -r