suckless unix tools
Go to file
Risto Salminen ab4f93cf47 Fix df hanging when statvfs() fails.
Now df prints out an appropriate error message when statvfs() fails
instead of just hanging. Also make df return 1 when statvfs() fails.
2015-01-26 19:26:22 +00:00
libutil Don't do a blocking open in ttytostr() 2015-01-16 16:20:16 +00:00
LICENSE Update LICENSE 2014-12-31 22:02:29 +00:00
Makefile Add vtallow.1 2014-12-05 15:41:13 +00:00
README Remove tools from README 2014-11-29 21:46:42 +00:00
TODO Add swaplabel(8) 2014-11-29 21:22:56 +00:00
arg.h Rename __ARG_H__ to ARG_H__ 2013-11-25 21:33:58 +00:00
chvt.1 Capitalize the one-line description in manpages 2014-04-12 14:16:56 +01:00
chvt.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
clear.1 Capitalize the one-line description in manpages 2014-04-12 14:16:56 +01:00
clear.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
config.def.h Add last and lastb 2014-10-16 11:28:01 +01:00
config.mk Use -D_XOPEN_SOURCE=700 2014-11-30 14:12:52 +00:00
ctrlaltdel.8 Fix manpage style 2014-04-13 16:40:56 +01:00
ctrlaltdel.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
dd.1 Add dd(1) manpage 2014-06-11 11:54:38 +01:00
dd.c Fix includes across all tools 2014-06-30 19:04:47 +01:00
df.1 Fix manpage style 2014-04-13 16:40:56 +01:00
df.c Fix df hanging when statvfs() fails. 2015-01-26 19:26:22 +00:00
dmesg.1 Fix manpage style 2014-04-13 16:40:56 +01:00
dmesg.c No need for dmesg_show() to have an fd 2014-11-30 13:28:26 +00:00
eject.1 Fix manpage style 2014-04-13 16:40:56 +01:00
eject.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
fallocate.1 Fix typo 2014-04-13 16:50:20 +01:00
fallocate.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
free.1 Fix manpage style 2014-04-13 16:40:56 +01:00
free.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
freeramdisk.8 Add freeramdisk(8) 2014-06-26 16:26:14 +01:00
freeramdisk.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
fsfreeze.8 Add fsfreeze.8 2014-06-26 16:07:11 +01:00
fsfreeze.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
getty.8 Add getty manpage 2014-04-12 14:23:28 +01:00
getty.c Stop using *_FILENO 2014-11-30 13:12:33 +00:00
halt.8 Fix manpage style 2014-04-13 16:40:56 +01:00
halt.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
hwclock.8 Clarify that hwclock(8) uses /dev/rtc as the default devnode 2014-06-04 11:01:00 +01:00
hwclock.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
id.1 Implement -g and -u for id(1) 2014-06-11 15:47:23 +01:00
id.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
insmod.8 Style fix for insmod.8 2014-06-26 16:09:01 +01:00
insmod.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
killall5.8 Fix manpage style 2014-04-13 16:40:56 +01:00
killall5.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
last.c Remember to include libgen.h for basename(3) 2014-10-17 16:08:31 +01:00
lastlog.8 Add lastlog(8) 2014-08-18 18:29:38 +01:00
lastlog.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
login.1 Fix login(1) -p semantincs once and for all 2014-06-03 18:57:37 +01:00
login.c Stop using *_FILENO 2014-11-30 13:12:33 +00:00
lsmod.8 Capitalize the one-line description in manpages 2014-04-12 14:16:56 +01:00
lsmod.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
lsusb.8 Capitalize the one-line description in manpages 2014-04-12 14:16:56 +01:00
lsusb.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
mesg.1 Add mesg.1 2014-08-04 21:01:00 +01:00
mesg.c Stop using *_FILENO 2014-11-30 13:12:33 +00:00
mknod.1 Fix some more inconsistencies 2014-04-13 17:00:42 +01:00
mknod.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
mkswap.8 Add mkswap manpage 2014-04-12 15:03:31 +01:00
mkswap.c Turn enumeration into #defines 2014-11-30 12:34:26 +00:00
mount.8 Add mount manpage 2014-04-13 17:45:35 +01:00
mount.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
mountpoint.1 Fix some more inconsistencies 2014-04-13 17:00:42 +01:00
mountpoint.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
pagesize.1 Add pagesize manpage 2014-04-12 14:57:50 +01:00
pagesize.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
passwd.1 passwd: improvements 2014-07-10 22:04:06 +01:00
passwd.c Stop using *_FILENO 2014-11-30 13:12:33 +00:00
passwd.h passwd: fix /etc/passwd support, ... 2014-07-14 11:14:36 +01:00
pidof.1 Add pidof manpage 2014-04-13 16:36:34 +01:00
pidof.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
pivot_root.8 add pivot_root.8 2014-04-12 19:36:59 +01:00
pivot_root.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
proc.h Rename validps() to pidfile() 2013-08-16 16:42:59 +01:00
ps.1 Add ps manpage 2014-04-13 17:30:40 +01:00
ps.c Use TTY_NAME_MAX instead of PATH_MAX 2015-01-16 15:55:07 +00:00
queue.h Import sys/queue.h and move over existing tools 2014-06-30 13:06:07 +01:00
readahead.8 Add readahead.8 2014-06-30 14:19:57 +01:00
readahead.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
reboot.h Make ubase compile with musl-gcc 2013-08-19 16:34:18 +01:00
respawn.1 Implement fifo listener mode for respawn 2014-04-22 16:40:11 +01:00
respawn.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
rmmod.8 Add rmmod manpage 2014-04-12 15:21:21 +01:00
rmmod.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
rtc.h Use rtc_time 2014-06-03 15:15:21 +01:00
stat.1 Fix manpage style 2014-04-13 16:40:56 +01:00
stat.c Stop using *_FILENO 2014-11-30 13:12:33 +00:00
su.1 Add passwd manpage 2014-06-09 16:44:47 +01:00
su.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
swaplabel.8 Add swaplabel(8) 2014-11-29 21:22:56 +00:00
swaplabel.c Don't initialize unneeded variables in swaplabel(8) 2014-11-29 21:32:53 +00:00
swapoff.8 add unshare.1, swapon.8, swapoff.8 and update df.1 2014-04-12 19:37:06 +01:00
swapoff.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
swapon.8 add unshare.1, swapon.8, swapoff.8 and update df.1 2014-04-12 19:37:06 +01:00
swapon.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
switch_root.8 Add switch_root manpage 2014-04-14 14:36:40 +01:00
switch_root.c Stop using *_FILENO 2014-11-30 13:12:33 +00:00
sysctl.8 sysctl: Add support for loading key:value pairs from file 2014-06-13 15:25:33 +01:00
sysctl.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
text.h passwd: improvements 2014-07-10 22:04:06 +01:00
truncate.1 Fix manpage style 2014-04-13 16:40:56 +01:00
truncate.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
umount.8 Add a SEE ALSO section for the umount manpage 2014-04-14 09:46:15 +01:00
umount.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
unshare.1 Be consistent with the escape sequences in the manpages 2014-04-14 09:28:07 +01:00
unshare.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
uptime.1 Fix uptime manpage 2014-04-13 16:28:58 +01:00
uptime.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
util.h Properly match (ttymaj, ttymin) pairs to tty names in /dev 2015-01-16 15:55:07 +00:00
vtallow.1 Add vtallow.1 2014-12-05 15:41:13 +00:00
vtallow.c Rename to unlock/lock as opposed to enable/disable 2014-12-05 19:06:40 +00:00
watch.1 Add watch manpage 2014-04-13 14:53:59 +01:00
watch.c watch: If period is negative default to 0.1s 2014-11-30 14:08:42 +00:00
who.1 update who.1 to list the -l option 2014-04-14 09:28:01 +01:00
who.c Stop using *_FILENO 2014-11-30 13:12:33 +00:00

README

ubase - suckless linux base utils
=================================

ubase is  a collection of  tools similar  in spirit to  util-linux but
much simpler.

The complement  of ubase  is sbase[1] which  mostly follows  POSIX and
provides all the portable tools.  Together they are intended to form a
base system similar to busybox but much smaller and suckless.

Building
--------

To  build ubase,  simply  type  make.  You  may  have  to fiddle  with
config.mk and config.h depending on your system.

You  can  also  build  ubase-box,  which  generates  a  single  binary
containing  all  the  required  tools.    You  can  then  symlink  the
individual tools to ubase-box or run them directly as follows:

  ubase-box cmd [args]

Ideally you will  want to statically link ubase.   We highly recommend
using musl-libc[2].

ubase is known to compile with gcc, clang and tcc.

[1] http://git.suckless.org/sbase/
[2] http://www.musl-libc.org/