suckless linux base utils
Go to file
sin e3d7ffa05c Use rtc_time 2014-06-03 15:15:21 +01:00
util Sweep through code and replace malloc() with emalloc() etc. 2014-04-30 13:12:17 +01:00
LICENSE Implement switch_root 2014-04-14 09:44:38 +01:00
Makefile Add initial version of hwclock(8) 2014-06-03 14:52:14 +01:00
README Add login(1) to README 2014-06-02 16:54:09 +01:00
TODO Add hwclock to TODO 2014-06-03 12:49:48 +01: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 Don't prefix error messages with the program name 2014-04-11 23:47:28 +01:00
clear.1 Capitalize the one-line description in manpages 2014-04-12 14:16:56 +01:00
clear.c clear, watch: use 0x1b instead of non-standard \e 2014-02-14 14:10:53 +00:00
config.def.h /bin is good enough 2014-06-02 17:18:51 +01:00
config.mk Use -std=c99 and -pedantic in default config.mk 2014-06-03 12:39:22 +01:00
ctrlaltdel.8 Fix manpage style 2014-04-13 16:40:56 +01:00
ctrlaltdel.c Add ctrlaltdel tool 2014-02-07 16:38:53 +00:00
df.1 Fix manpage style 2014-04-13 16:40:56 +01:00
df.c Don't list dummy rootfs by default 2014-03-18 14:20:58 +00:00
dmesg.1 Fix manpage style 2014-04-13 16:40:56 +01:00
dmesg.c Sweep through code and replace malloc() with emalloc() etc. 2014-04-30 13:12:17 +01:00
eject.1 Fix manpage style 2014-04-13 16:40:56 +01:00
eject.c exit with EXIT_SUCCESS/EXIT_FAILURE 2013-10-07 19:15:00 +01:00
fallocate.1 Fix typo 2014-04-13 16:50:20 +01:00
fallocate.c exit with EXIT_SUCCESS/EXIT_FAILURE 2013-10-07 19:15:00 +01:00
free.1 Fix manpage style 2014-04-13 16:40:56 +01:00
free.c exit with EXIT_SUCCESS/EXIT_FAILURE 2013-10-07 19:15:00 +01:00
getty.8 Add getty manpage 2014-04-12 14:23:28 +01:00
getty.c Error out if dup2 doesn't return the fd we want 2014-04-10 11:21:44 +01:00
halt.8 Fix manpage style 2014-04-13 16:40:56 +01:00
halt.c exit with EXIT_SUCCESS/EXIT_FAILURE 2013-10-07 19:15:00 +01:00
hwclock.c Use rtc_time 2014-06-03 15:15:21 +01:00
id.1 Fix manpage style 2014-04-13 16:40:56 +01:00
id.c Import id(1) from sbase 2014-02-27 14:30:30 +00:00
insmod.8 Add insmod manpage and fix insmod usage 2014-04-12 14:31:27 +01:00
insmod.c Sweep through code and replace malloc() with emalloc() etc. 2014-04-30 13:12:17 +01:00
killall5.8 Fix manpage style 2014-04-13 16:40:56 +01:00
killall5.c Sweep through code and replace malloc() with emalloc() etc. 2014-04-30 13:12:17 +01:00
login.1 Remove BUGS section from login.1 - we now have shadow support 2014-06-03 11:08:00 +01:00
login.c Use correction function name in error message 2014-06-03 12:34:32 +01:00
lsmod.8 Capitalize the one-line description in manpages 2014-04-12 14:16:56 +01:00
lsmod.c Fix some more instances of enprintf(EXIT_FAILURE, ...); 2014-02-27 15:10:39 +00:00
lsusb.8 Capitalize the one-line description in manpages 2014-04-12 14:16:56 +01:00
lsusb.c lsusb: initialize variables to 0, fix type warning 2014-02-14 14:11:00 +00:00
mknod.1 Fix some more inconsistencies 2014-04-13 17:00:42 +01:00
mknod.c Fix char **argv to char *argv[] 2014-04-18 11:52:31 +01:00
mkswap.8 Add mkswap manpage 2014-04-12 15:03:31 +01:00
mkswap.c Sweep through code and replace malloc() with emalloc() etc. 2014-04-30 13:12:17 +01:00
mount.8 Add mount manpage 2014-04-13 17:45:35 +01:00
mount.c mount: style for loop in catfile() 2014-04-05 18:56:08 +01:00
mountpoint.1 Fix some more inconsistencies 2014-04-13 17:00:42 +01:00
mountpoint.c Convert mountpoint(1) to use mntent 2014-02-15 18:34:59 +00:00
pagesize.1 Add pagesize manpage 2014-04-12 14:57:50 +01:00
pagesize.c Fix some more instances of enprintf(EXIT_FAILURE, ...); 2014-02-27 15:10:39 +00:00
pidof.1 Add pidof manpage 2014-04-13 16:36:34 +01:00
pidof.c Sweep through code and replace malloc() with emalloc() etc. 2014-04-30 13:12:17 +01:00
pivot_root.8 add pivot_root.8 2014-04-12 19:36:59 +01:00
pivot_root.c exit with EXIT_SUCCESS/EXIT_FAILURE 2013-10-07 19:15:00 +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 keep usage definition above main in ubase 2014-04-22 15:36:53 +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 Implement fifo listener mode for respawn 2014-04-22 16:40:11 +01:00
rmmod.8 Add rmmod manpage 2014-04-12 15:21:21 +01:00
rmmod.c rmmod: fix segfault if '.' is not found 2014-04-06 12:51:31 +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 stat: implement -t (terse mode) 2014-04-04 20:09:17 +01:00
su.1 Add su manpage and fix su usage line 2014-04-13 17:23:26 +01:00
su.c Inform the user if exec*() fails 2014-06-03 12:34:39 +01:00
swapoff.8 add unshare.1, swapon.8, swapoff.8 and update df.1 2014-04-12 19:37:06 +01:00
swapoff.c Check setmntent() for failures 2014-02-15 18:27:46 +00:00
swapon.8 add unshare.1, swapon.8, swapoff.8 and update df.1 2014-04-12 19:37:06 +01:00
swapon.c Check setmntent() for failures 2014-02-15 18:27:46 +00:00
switch_root.8 Add switch_root manpage 2014-04-14 14:36:40 +01:00
switch_root.c Fix char **argv to char *argv[] 2014-04-18 11:52:31 +01:00
sysctl.8 Add initial implementation of sysctl(8) 2014-04-17 15:31:42 +01:00
sysctl.c str* is in the reserved namespace, rename to replacestr() 2014-05-06 13:40:37 +01:00
truncate.1 Fix manpage style 2014-04-13 16:40:56 +01:00
truncate.c Initialize size to 0 to avoid gcc warnings 2014-04-14 14:53:20 +01:00
umount.8 Add a SEE ALSO section for the umount manpage 2014-04-14 09:46:15 +01:00
umount.c Sweep through code and replace malloc() with emalloc() etc. 2014-04-30 13:12:17 +01:00
unshare.1 Be consistent with the escape sequences in the manpages 2014-04-14 09:28:07 +01:00
unshare.c The flag for unshare(1) is 'U' not 'u' 2014-02-24 13:53:34 +00:00
uptime.1 Fix uptime manpage 2014-04-13 16:28:58 +01:00
uptime.c Use utmpx instead of utmp 2013-10-08 16:49:40 +01:00
util.h Add ealloc.c with wrappers for emalloc() and friends 2014-04-30 13:11:57 +01:00
watch.1 Add watch manpage 2014-04-13 14:53:59 +01:00
watch.c clear, watch: use 0x1b instead of non-standard \e 2014-02-14 14:10:53 +00:00
who.1 update who.1 to list the -l option 2014-04-14 09:28:01 +01:00
who.c Fix char **argv to char *argv[] 2014-04-18 11:52:31 +01:00

README

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

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

The following programs are currently implemented:

    chvt clear ctrlaltdel df dmesg  eject fallocate free getty halt id
    insmod killall5  login lsmod  lsusb mknod mkswap  mount mountpoint
    pagesize pidof pivot_root ps respawn  rmmod stat su swapoff swapon
    switch_root sysctl truncate umount unshare uptime watch who

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 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.

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

ubase is known to compile with gcc and tcc.

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