Mirror of Suckless' ubase (git://git.suckless.org/ubase)
Go to file
sin f5ebc6350b Import sys/queue.h and move over existing tools
We should stop rolling data structure implementations in every
tool.
2014-06-30 13:06:07 +01:00
util Disable core dumps in case passwd(1) crashes 2014-06-10 11:44:33 +01:00
LICENSE Implement switch_root 2014-04-14 09:44:38 +01:00
Makefile Import sys/queue.h and move over existing tools 2014-06-30 13:06:07 +01:00
README Update README 2014-06-28 21:03:39 +01:00
TODO Update TODO 2014-06-28 23:43:29 +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 Add password cipher type in config.def.h - default to SHA-512 2014-06-09 16:51:59 +01:00
config.mk define -D_XOPEN_SOURCE in config.mk 2014-06-04 15:16:24 +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
dd.1 Add dd(1) manpage 2014-06-11 11:54:38 +01:00
dd.c Ensure a select() failure is properly signalled to the caller 2014-06-11 13:08:16 +01: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 Bring back some C89/C90 elements 2014-06-05 11:33:34 +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
freeramdisk.8 Add freeramdisk(8) 2014-06-26 16:26:14 +01:00
freeramdisk.c Add freeramdisk(8) 2014-06-26 16:26:14 +01:00
fsfreeze.8 Add fsfreeze.8 2014-06-26 16:07:11 +01:00
fsfreeze.c Check FIFREEZE/FITHAW ioctl for failure 2014-06-26 16:26:20 +01:00
getty.8 Add getty manpage 2014-04-12 14:23:28 +01:00
getty.c Bring back some C89/C90 elements 2014-06-05 11:33:34 +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.8 Clarify that hwclock(8) uses /dev/rtc as the default devnode 2014-06-04 11:01:00 +01:00
hwclock.c Check some more ioctl() calls for errors 2014-06-28 11:29:15 +01:00
id.1 Implement -g and -u for id(1) 2014-06-11 15:47:23 +01:00
id.c Implement -g and -u for id(1) 2014-06-11 15:47:23 +01:00
insmod.8 Style fix for insmod.8 2014-06-26 16:09:01 +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 Import sys/queue.h and move over existing tools 2014-06-30 13:06:07 +01:00
login.1 Fix login(1) -p semantincs once and for all 2014-06-03 18:57:37 +01:00
login.c Fix pw_check() semantics and style - it is now similar to pw_copy() 2014-06-09 13:05:24 +01:00
lsmod.8 Capitalize the one-line description in manpages 2014-04-12 14:16:56 +01:00
lsmod.c Replace fgets() with agetline() 2014-06-14 13:15:03 +01:00
lsusb.8 Capitalize the one-line description in manpages 2014-04-12 14:16:56 +01:00
lsusb.c Replace fgets() with agetline() 2014-06-14 13:15:03 +01: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: remove stat, not needed since we use realpath 2014-06-07 19:16:50 +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
passwd.1 Add passwd manpage 2014-06-09 16:44:47 +01:00
passwd.c Disable core dumps in case passwd(1) crashes 2014-06-10 11:44:33 +01:00
passwd.h Disable core dumps in case passwd(1) crashes 2014-06-10 11:44:33 +01:00
pidof.1 Add pidof manpage 2014-04-13 16:36:34 +01:00
pidof.c Import sys/queue.h and move over existing tools 2014-06-30 13:06:07 +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
queue.h Import sys/queue.h and move over existing tools 2014-06-30 13:06:07 +01:00
readahead.c Add readahead(8) 2014-06-27 17:07:56 +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 passwd manpage 2014-06-09 16:44:47 +01:00
su.c Add passwd manpage 2014-06-09 16:44:47 +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 switch_root delete_content() 2014-06-27 12:55:33 +01:00
sysctl.8 sysctl: Add support for loading key:value pairs from file 2014-06-13 15:25:33 +01:00
sysctl.c Replace fgets() with agetline() 2014-06-14 13:15:03 +01:00
text.h Add initial implementation of passwd(1) 2014-06-05 16:57:27 +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 Use estrtoul() in dd(1) 2014-06-04 13:13:00 +01:00
watch.1 Add watch manpage 2014-04-13 14:53:59 +01:00
watch.c No need to include sys/ioctl.h in watch(1) 2014-06-28 11:29:21 +01: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 dd df dmesg eject fallocate free freeramdisk
    fsfreeze getty halt  hwclock id insmod killall5  login lsmod lsusb
    mknod mkswap mount mountpoint  pagesize passwd pidof pivot_root ps
    readahead 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 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/