Mirror of Suckless' sbase (git://git.suckless.org/sbase)
Go to file
2015-02-01 16:33:46 +01:00
libutf Add explicit boundary to loop in readrune() 2015-02-01 04:20:02 +01:00
libutil Convert estrto{l, ul} to estrtonum 2015-01-30 16:52:44 +01:00
arg.h ARGNUMF() only works on base 10 as it uses strtonum underneath 2015-01-30 16:45:44 +00:00
basename.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
basename.c
cal.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
cal.c Convert cal(1) to strtonum 2015-01-30 16:01:37 +01:00
cat.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
cat.c
chgrp.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
chgrp.c
chmod.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
chmod.c
chown.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
chown.c
chroot.1 Finish up chroot(1) and md5sum(1) 2015-01-31 23:54:51 +01:00
chroot.c Finish up chroot(1) and md5sum(1) 2015-01-31 23:54:51 +01:00
cksum.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
cksum.c
cmp.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
cmp.c
cols.1 Finish up cols(1) 2015-02-01 00:55:22 +01:00
cols.c Adjust some limits to more flexibility for strtonum 2015-02-01 01:24:03 +01:00
comm.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
comm.c
compat.h
config.mk
cp.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
cp.c
cron.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
cron.c
crypt.h
cut.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
cut.c
date.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
date.c Adjust some limits to more flexibility for strtonum 2015-02-01 01:24:03 +01:00
dirname.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
dirname.c
du.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
du.c Adjust some limits to more flexibility for strtonum 2015-02-01 01:24:03 +01:00
echo.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
echo.c
env.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
env.c
expand.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
expand.c Adjust some limits to more flexibility for strtonum 2015-02-01 01:24:03 +01:00
expr.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
expr.c
false.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
false.c
fold.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
fold.c Adjust some limits to more flexibility for strtonum 2015-02-01 01:24:03 +01:00
fs.h
grep.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
grep.c grep: getline returns signed (ssize_t) 2015-01-31 15:19:42 +01:00
head.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
head.c Adjust some limits to more flexibility for strtonum 2015-02-01 01:24:03 +01:00
hostname.1 Finish up hostname(1) 2015-02-01 00:03:03 +01:00
hostname.c
kill.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
kill.c
LICENSE
link.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
link.c
ln.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
ln.c ln: usage, just use %s 2015-01-31 15:23:59 +01:00
logger.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
logger.c
logname.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
logname.c
ls.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
ls.c
Makefile Makefile: stricter regex replace for sbase VERSION 2015-02-01 16:33:46 +01:00
md5.h
md5sum.1 Finish up chroot(1) and md5sum(1) 2015-01-31 23:54:51 +01:00
md5sum.c Finish up chroot(1) and md5sum(1) 2015-01-31 23:54:51 +01:00
mkdir.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
mkdir.c
mkfifo.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
mkfifo.c
mktemp.1 Finish up printenv(1) 2015-02-01 00:23:38 +01:00
mktemp.c
mv.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
mv.c
nice.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
nice.c Convert estrto{l, ul} to estrtonum 2015-01-30 16:52:44 +01:00
nl.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
nl.c Adjust some limits to more flexibility for strtonum 2015-02-01 01:24:03 +01:00
nohup.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
nohup.c
paste.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
paste.c
printenv.1 Finish up printenv(1) 2015-02-01 00:23:38 +01:00
printenv.c
printf.1 add some mandoc pages and fix some warnings 2015-01-30 21:21:50 +01:00
printf.c
pwd.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
pwd.c
queue.h
readlink.1 Edit readlink.1 and document missing flags 2015-02-01 00:43:43 +01:00
readlink.c Edit readlink.1 and document missing flags 2015-02-01 00:43:43 +01:00
README split: fixes 2015-02-01 16:30:12 +01:00
renice.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
renice.c Convert estrto{l, ul} to estrtonum 2015-01-30 16:52:44 +01:00
rm.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
rm.c
rmdir.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
rmdir.c
runetypebody.h
seq.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
seq.c Adjust some limits to more flexibility for strtonum 2015-02-01 01:24:03 +01:00
setsid.1 Finish up setsid(1) 2015-02-01 00:47:32 +01:00
setsid.c
sha1.h
sha1sum.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
sha1sum.c
sha256.h
sha256sum.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
sha256sum.c
sha512.h
sha512sum.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
sha512sum.c
sleep.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
sleep.c
sort.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
sort.c Use size_t for number of lines in linebuf 2015-01-31 22:49:43 +00:00
split.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
split.c split: fixes 2015-02-01 16:30:12 +01:00
sponge.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
sponge.c
strings.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
strings.c
sync.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
sync.c
tail.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
tail.c ARGNUMF() only works on base 10 as it uses strtonum underneath 2015-01-30 16:45:44 +00:00
tar.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
tar.c
tee.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
tee.c
test.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
test.c
text.h Use size_t for number of lines in linebuf 2015-01-31 22:49:43 +00:00
TODO
touch.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
touch.c Adjust some limits to more flexibility for strtonum 2015-02-01 01:24:03 +01:00
tr.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
tr.c
true.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
true.c
tty.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
tty.c
uname.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
uname.c
unexpand.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
unexpand.c Convert estrto{l, ul} to estrtonum 2015-01-30 16:52:44 +01:00
uniq.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
uniq.c
unlink.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
unlink.c
utf.h
util.h Convert estrto{l, ul} to estrtonum 2015-01-30 16:52:44 +01:00
uudecode.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
uudecode.c
uuencode.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
uuencode.c
wc.1 Finish up wc(1) 2015-02-01 03:01:11 +01:00
wc.c Don't call var "read" 2015-02-01 10:22:11 +00:00
xargs.1 Add .Os sbase and sed replace to .Os sbase $(VERSION) in make install 2015-01-31 19:37:03 +00:00
xargs.c
yes.1 Finish up yes(1) by adding multiple string support 2015-02-01 02:13:47 +01:00
yes.c yes: Minor style fix 2015-02-01 01:27:05 +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 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                       -e, -m
=* 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             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.

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/