sbase/README
FRIGN 109f6b5a60 Audit mv(1)
1) Make argument-naming consistent with other tools (cp(1), ...)
2) style fixes
3) usage() fix
4) BUGFIX: Probably from the old non-arg.h days, the directory-
   check was only done when argc > 3, but with arg.h, this ignores
   the case when 3 arguments were given.
   This is actually a pretty serious issue and I'm glad it's fixed.
5) Moreover, be more verbose when stat() fails and make it clearer
   what the hell is going on at this checkpoint.
2015-03-04 23:22:43 +01:00

123 lines
5.7 KiB
Plaintext

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, '|' == audited):
UTILITY POSIX 2008 COMPLIANT MISSING OPTIONS
------- -------------------- ---------------
=*| basename yes none
=* cal yes none
=*| cat yes none
=* chgrp yes none
=* chmod yes none
=* chown yes none
=*| chroot non-posix none
=* cksum yes none
=* cmp yes none
#* cols non-posix none
col yes none
=* comm yes none
=*| cp yes none (-i)
=* cron non-posix none
#* cut yes none
=*| date yes none
=*| dirname yes none
=* du yes none
=*| echo yes none
=*| env yes none
#* expand yes none
#* expr yes none
=*| false yes none
= find 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), -S, -f, -m, -s, -x
=*| md5sum non-posix none
=* mkdir yes none
=*| mkfifo yes none
=* mktemp non-posix none
=*| mv yes none (-i)
=*| nice yes none
= nl no -d, -f, -h, -l, -p
=*| nohup yes none
#* paste yes none
=*| printenv non-posix none
#* printf yes none
=*| pwd yes none
= readlink non-posix none
=* renice yes none
=*| rm yes none (-i)
=*| rmdir yes none
# sed
seq non-posix none
=*| setsid non-posix none
=*| sha1sum non-posix none
=*| sha256sum non-posix none
=*| sha512sum non-posix none
=*| sleep yes none
sort no -m, -o, -d, -f, -i
=* split yes none
=*| sponge non-posix none
#* strings yes none
=* sync non-posix none
=* tail yes none
=* tar non-posix none
=*| tee yes none
=* test yes none
= time yes none
=* touch yes none
#* tr yes none
=*| true yes none
=*| tty yes none
=* uname yes none
#* unexpand yes none
=* uniq yes none
=*| unlink yes none
=* uudecode yes none
=* uuencode yes none
#* wc yes none
= xargs no -I, -L, -p, -s, -t, -x
=*| yes non-posix 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 or run: make sbase-box-install
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/