bab75bfe58
to mark tools considered finished. Finished doesn't mean work has stopped on these, but that these programs are in a satisfying state according to the current suckless coding practices, this includes having a 1) mandoc manpage 2) clean code In most cases, 1) was the failing criterion. So in the interest of finishing more tools and if you want to, well-written mandoc man- pages are very much appreciated.
120 lines
5.6 KiB
Plaintext
120 lines
5.6 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):
|
|
|
|
UTILITY POSIX 2008 COMPLIANT MISSING OPTIONS
|
|
------- -------------------- ---------------
|
|
* basename yes none
|
|
cal pending pending
|
|
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, -H, -L, -R, -c, -q, -u
|
|
md5sum non-posix none
|
|
mkdir yes none
|
|
mkfifo yes none
|
|
mktemp non-posix none
|
|
mv no -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 no -i
|
|
rmdir no -p
|
|
sleep yes none
|
|
setsid non-posix 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 no -i
|
|
test yes none
|
|
touch no -a, -m, -r
|
|
tr yes none
|
|
true yes none
|
|
tty yes none
|
|
uudecode no -o
|
|
uuencode no -m
|
|
uname yes none
|
|
unexpand yes none
|
|
uniq no -f, -s
|
|
unlink yes none
|
|
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
|
|
--------
|
|
|
|
You need GNU make to build sbase on OpenBSD.
|
|
|
|
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/
|