tldr-pages/tldr

SUS/POSIX compliance tracking issue

Open

#9,612 opened on Dec 10, 2022

View on GitHub
 (0 comments) (4 reactions) (0 assignees)Shell (2,507 forks)batch import
help wantedmass changesnew commandpage edit

Repository metrics

Stars
 (30,937 stars)
PR merge metrics
 (Avg merge 7d 5h) (321 merged PRs in 30d)

Description

The Open Group's POSIX.2, a part of the Single UNIX Specification, is the standard for the base shell environment that we seek to document in common. However, there are some commands which don't have a common tldr page yet:

  • admin
  • asa
  • cal → #12172
  • cflow
  • compress
  • csplit
  • cxref
  • fort77
  • fuser
  • gencat
  • get
  • getconf
  • getopts
  • hash
  • ipcrm
  • locale
  • localedef
  • newgrp
  • prs
  • qalter
  • qdel
  • qhold
  • qmove
  • qmsg
  • qrerun
  • qrls
  • qselect
  • qsig
  • qstat
  • qsub
  • rmdel
  • sact
  • sccs
  • strip
  • tabs
  • talk
  • uncompress
  • unget
  • uucp
  • uustat
  • uux
  • val
  • what
  • yacc

Also, there are many pages in common with unportable flags, so let's manually check them one-by-one, it's not that many:

  • alias (the more information is questionable; we should replace the unalias example with a See also)
  • ar
  • at (-l and -m might be considerations to be added)
  • awk (let's add -f and possibly -v)
  • basename (last example sucks)
  • batch (-f doesn't exist)
  • bc (full of wrong crap, only -l exists)
  • bg (i don't get why it has a % in there)
  • c99 (doesn't conform to path/to/, etc.; could have more options in there)
  • cat (only -u exists) → #9623
  • cd (could add -L, -P)
  • chgrp (--reference doesn't exist)
  • chmod (we should really consider including an octal example, the description is really complicated and i'm not sure whether , and X exist)
  • chown (--reference doesn't exist)
  • cksum ("Note, on old UNIX systems the CRC implementation may differ"? It's clearly defined)
  • cmp (long options do not exist, -l and -s do)
  • comm (path/to/ missing, i'm not sure if everything works like that, but it looks somewhat fine)
  • command (let's add -V and -p)
  • cp (-v doesn't exist, -L only exists if -R is also given)
  • crontab (-u doesn't exist, also wtf is crontab.guru)
  • ctags (will have to look into this, for posix long options don't exist, -a, -f and -x do)
  • cut (long options do not exist)
  • date (only -u and some +% things exist)
  • dd (status=progress does not exist) → #9624, #9816
  • delta (name collision)
  • df (only -k, -P and -t exist) → #11870
  • diff (long options do not exist)
  • dirname (--zero doesn't exist)
  • du (only -aHkLsx exist)
  • echo (May I quote: "Implementations shall not support any options.", -n exists in XSI)
  • ed (THERE ARE NO LONG OPTIONS, -p and -s exist)
  • env (-u is not real)
  • ex (it is not vim)
  • expand (only -t exists)
  • expr (it looks like half our examples aren't valid expressions)
  • false (IT IS NON-ZERO NOT ONE😭) → #9817
  • fc (WITHOUT THE -l -r DOESNT LIST IT EDITS)
  • fg (same as with bg)
  • file (-dhMmih exist)
  • find (half the operands dont exist)
  • fold (consider a -b example)
  • grep (long options aren't supported on non-GNU platforms)
  • head (LONG OPTIONS 😭😭😭, THERE IS ONLY -n) → #9818
  • iconv (doesn't follow path/to/ convention)
  • id (consider including more, -Ggnru are supported)
  • ipcs
  • jobs (still not sure about %)
  • join (doesn't follow path/to/ and ellipsis syntax and could use more options (-aveot12))
  • kill (%) → #12044
  • lex (long options aren't supported on non-GNU platforms, there is no -o, only -ntv) → #10001
  • link
  • ln
  • logger
  • logname
  • lp
  • ls
  • m4
  • mailx
  • make
  • man
  • mesg
  • mkdir
  • mkfifo
  • more → #12171
  • mv
  • nice
  • nl (-t is fake; the page is in general kinda crappy imo)
  • nm
  • nohup
  • od
  • paste
  • patch
  • pathchk
  • pax
  • pr
  • printf
  • ps
  • pwd
  • read
  • renice
  • rm
  • rmdir
  • sed → #9609
  • sh
  • sleep
  • sort
  • split
  • strings
  • stty
  • tail
  • tee
  • test
  • time
  • touch
  • tput
  • tr
  • true
  • tsort
  • tty
  • type
  • ulimit
  • umask
  • unalias
  • uname
  • unexpand
  • uniq (maybe -f and -s should be mentioned?)
  • unlink
  • uudecode
  • uuencode
  • vi
  • wait
  • wc
  • who
  • write
  • xargs
  • zcat

Of course, you can do, whatever you want to, as long as you can find approving reviewers, but I would suggest to us all the following rules:

  • Do not work on this issue if you do not have access to a current version of the spec, you can get it for free from The Open Group/Austin Group, even though it's as hard as they can physically make it.

  • Do check against the standard before making any changes, either opening/merging a PR or to the lists above.

  • Also, let's replace all links to GNU documentation with something more sensible that is yet to be found. (maybe 1p man pages? or https://pubs.opengroup.org/onlinepubs/9699919799/utilities/false.html)

Contributor guide