sbase - suckless unix tools
===========================

sbase  is a  collection of  unix  tools that  are inherently  portable
across UNIX and UNIX-like systems.

The following tools are implemented ('*' == finished, '#' == UTF-8 support,
'=' == implicit UTF-8 support):

   UTILITY         POSIX 2008 COMPLIANT            MISSING OPTIONS
   -------         --------------------            ---------------
=* basename        yes                             none
=* cal             yes                             none
=* cat             yes                             none
=  chgrp           no                              -h, -H, -L, -P
=* chmod           yes                             none
=  chown           no                              -h, -H, -L, -P
=  chroot          non-posix                       none
=* cksum           yes                             none
   cmp             yes                             none
   cols            non-posix                       none
=* comm            yes                             none
=  cp              no                              -H, (-i), -L
=* cron            non-posix                       none
#* cut             yes                             none
=* date            yes                             none
=* dirname         yes                             none
=  du              no                              -H, -L, (-x)
=* echo            yes                             none
=* env             yes                             none
#* expand          yes                             none
=* expr            yes                             none
=* false           yes                             none
#* fold            yes                             none
=* grep            yes                             none
=* head            yes                             none
=  hostname        non-posix                       none
=* kill            yes                             none
=* link            yes                             none
=* ln              yes                             none
=* logger          yes                             none
=* logname         yes                             none
=  ls              no                              -C, -R, -q, -u
   md5sum          non-posix                       none
=* mkdir           yes                             none
=* mkfifo          yes                             none
=  mktemp          non-posix                       none
=* mv              yes                             (-i)
=* nice            yes                             none
=  nl              no                              -d, -f, -h, -l, -n, -p, -v, -w
=* nohup           yes                             none
#* paste           yes                             none
=  printenv        non-posix                       none
   printf          stolen                          stolen
=* pwd             yes                             none
=  readlink        non-posix                       none
=* renice          yes                             none
=* rm              yes                             (-i)
=* rmdir           yes                             none
=  setsid          non-posix                       none
=* sleep           yes                             none
   sort            no                              -m, -o, -d, -f, -i
   split           yes                             none
=  sponge          non-posix                       none
   strings         no                              -a, -n, -t
=  sync            non-posix                       none
=  tail            no                              -c, -f
=  tar             non-posix                       none
=* tee             yes                             none
   test            yes                             none
=  touch           no                              -r
#* tr              yes                             none
=* true            yes                             none
=  tty             yes                             none
=  uname           yes                             none
#  unexpand        yes                             none
=  uniq            no                              -f, -s
=  unlink          yes                             none
=  uudecode        no                              -o
=  uuencode        no                              -m
   seq             non-posix                       none
=  sha1sum         non-posix                       none
=  sha256sum       non-posix                       none
=  sha512sum       non-posix                       none
   wc              yes                             none
=  xargs           no                              -I, -L, -p, -s, -t, -x
=  yes             yes                             none

The  complement of  sbase  is  ubase[1] which  is  Linux-specific  and
provides all  the non-portable tools.   Together they are  intended to
form a base system similar to busybox but much smaller and suckless.

Building
--------

To  build sbase,  simply  type  make.  You  may  have  to fiddle  with
config.mk depending on your system.

You  can  also  build  sbase-box,  which  generates  a  single  binary
containing  all  the  required  tools.    You  can  then  symlink  the
individual tools to sbase-box.

Ideally you will  want to statically link sbase.  If  you are on Linux
we recommend using musl-libc[2].

Portability
-----------

sbase has been  compiled on a variety of  different operating systems,
including Linux, *BSD, OSX, Haiku, Solaris, SCO OpenServer and others.

Various combinations of operating  systems and architectures have also
been built.

You can build sbase with gcc, clang, tcc, nwcc and pcc.

[1] http://git.suckless.org/ubase/
[2] http://www.musl-libc.org/