sbase/README

202 lines
6.4 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 programs are currently implemented:
+---------+-----------+--------+
|UTILITY |POSIX |FEATURES|
| |CONFORMANCE|MISSING |
+---------+-----------+--------+
|basename | | |
+---------+-----------+--------+
|cal | | |
+---------+-----------+--------+
|cat | | |
+---------+-----------+--------+
|chgrp | | |
+---------+-----------+--------+
|chmod | | |
+---------+-----------+--------+
|chown | | |
+---------+-----------+--------+
|chroot | | |
+---------+-----------+--------+
|cksum | | |
+---------+-----------+--------+
|cmp | | |
+---------+-----------+--------+
|col | | |
+---------+-----------+--------+
|cols | | |
+---------+-----------+--------+
|comm | | |
+---------+-----------+--------+
|cp | | |
+---------+-----------+--------+
|csplit | | |
+---------+-----------+--------+
|cut | | |
+---------+-----------+--------+
|date | | |
+---------+-----------+--------+
|dirname | | |
+---------+-----------+--------+
|du | | |
+---------+-----------+--------+
|echo | | |
+---------+-----------+--------+
|env | | |
+---------+-----------+--------+
|expand | | |
+---------+-----------+--------+
|expr | | |
+---------+-----------+--------+
|false | | |
+---------+-----------+--------+
|fold | | |
+---------+-----------+--------+
|grep | | |
+---------+-----------+--------+
|head | | |
+---------+-----------+--------+
|hostname | | |
+---------+-----------+--------+
|kill | | |
+---------+-----------+--------+
|link | | |
+---------+-----------+--------+
|ln | | |
+---------+-----------+--------+
|logname | | |
+---------+-----------+--------+
|ls | | |
+---------+-----------+--------+
|md5sum | | |
+---------+-----------+--------+
|mkdir | | |
+---------+-----------+--------+
|mkfifo | | |
+---------+-----------+--------+
|mktemp | | |
+---------+-----------+--------+
|mv | | |
+---------+-----------+--------+
|nice | | |
+---------+-----------+--------+
|nl | | |
+---------+-----------+--------+
|nohup | | |
+---------+-----------+--------+
|paste | | |
+---------+-----------+--------+
|printenv | | |
+---------+-----------+--------+
|printf | | |
+---------+-----------+--------+
|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 | | |
+---------+-----------+--------+
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.
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.
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.
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/