2014-02-12 14:34:09 +00:00
|
|
|
sbase - suckless unix tools
|
|
|
|
===========================
|
|
|
|
|
|
|
|
sbase is a collection of unix tools that are inherently portable
|
|
|
|
across UNIX and UNIX-like systems.
|
|
|
|
|
|
|
|
The following programs are currently implemented:
|
|
|
|
|
2014-07-26 14:44:13 +00:00
|
|
|
basename
|
|
|
|
cal
|
|
|
|
cat
|
|
|
|
chgrp
|
|
|
|
chmod
|
|
|
|
chown
|
|
|
|
chroot
|
|
|
|
cksum
|
|
|
|
cmp
|
2014-09-29 18:53:02 +00:00
|
|
|
col
|
2014-07-26 14:44:13 +00:00
|
|
|
cols
|
|
|
|
comm
|
|
|
|
cp
|
2014-10-16 11:33:56 +00:00
|
|
|
csplit
|
2014-07-26 14:44:13 +00:00
|
|
|
cut
|
|
|
|
date
|
|
|
|
dirname
|
|
|
|
du
|
|
|
|
echo
|
|
|
|
env
|
|
|
|
expand
|
2014-09-29 12:43:41 +00:00
|
|
|
expr
|
2014-07-26 14:44:13 +00:00
|
|
|
false
|
|
|
|
fold
|
|
|
|
grep
|
|
|
|
head
|
|
|
|
hostname
|
|
|
|
kill
|
|
|
|
ln
|
|
|
|
ls
|
|
|
|
md5sum
|
|
|
|
mkdir
|
|
|
|
mkfifo
|
|
|
|
mktemp
|
|
|
|
mv
|
|
|
|
nice
|
|
|
|
nl
|
|
|
|
nohup
|
|
|
|
paste
|
|
|
|
printenv
|
2014-09-28 14:13:09 +00:00
|
|
|
printf
|
2014-07-26 14:44:13 +00:00
|
|
|
pwd
|
|
|
|
readlink
|
|
|
|
renice
|
|
|
|
rm
|
|
|
|
rmdir
|
|
|
|
sleep
|
|
|
|
setsid
|
|
|
|
sort
|
|
|
|
split
|
|
|
|
sponge
|
|
|
|
strings
|
|
|
|
sync
|
|
|
|
tail
|
|
|
|
tar
|
|
|
|
tee
|
|
|
|
test
|
|
|
|
touch
|
|
|
|
tr
|
|
|
|
true
|
|
|
|
tty
|
|
|
|
uudecode
|
|
|
|
uuencode
|
|
|
|
uname
|
|
|
|
unexpand
|
|
|
|
uniq
|
|
|
|
unlink
|
|
|
|
seq
|
|
|
|
sha1sum
|
|
|
|
sha256sum
|
|
|
|
sha512sum
|
|
|
|
wc
|
|
|
|
xargs
|
|
|
|
yes
|
2014-02-12 14:34:09 +00:00
|
|
|
|
|
|
|
sbase is mostly following POSIX but we deviate wherever we think it is
|
|
|
|
appropriate.
|
|
|
|
|
2014-02-12 18:39:13 +00:00
|
|
|
The complement of sbase is ubase[1] which is Linux-specific and
|
2014-02-12 14:34:09 +00:00
|
|
|
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.
|
|
|
|
|
2014-02-27 16:54:40 +00:00
|
|
|
sbase also compiles and runs on minix3 with slight modifications.
|
|
|
|
They do not provide mmap()/munmap() so you need to use minix_mmap()
|
|
|
|
and minix_munmap() respectively.
|
|
|
|
|
2014-02-12 14:34:09 +00:00
|
|
|
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/
|