suckless linux base utils
Go to file
Markus Rudy a015607af0 Explicitly include sys/sysmacros.h for makedev etc
This header used to be included by sys/types.h in glibc, and musl
adopted the behaviour. However, this dependency was never desired, so
glibc deprecated it in 2016 and finally removed it in 2019, and so did
musl. Explicitly including the header should be a no-op on older libc
versions and fixes the build on newer versions.

https://sourceware.org/bugzilla/show_bug.cgi?id=19239
https://git.musl-libc.org/cgit/musl/commit/?id=f552c79
2023-09-26 09:22:32 +02:00
libutil Explicitly include sys/sysmacros.h for makedev etc 2023-09-26 09:22:32 +02:00
LICENSE LICENSE: update year and bump to top 2016-02-11 10:16:41 +00:00
Makefile Add blkdiscard(8) 2018-07-02 14:03:57 +01:00
README README: explain make ubase-box-install 2015-03-03 13:32:43 +00:00
TODO Add pwdx(1) 2016-04-20 23:08:51 +01:00
arg.h arg.h: fixed argv checks order 2016-02-22 14:36:21 +00:00
blkdiscard.8 Add blkdiscard(8) 2018-07-02 14:03:57 +01:00
blkdiscard.c Add blkdiscard(8) 2018-07-02 14:03:57 +01:00
chvt.1 Refactor chvt(1) 2015-09-07 11:47:10 +01:00
chvt.c Refactor chvt(1) 2015-09-07 11:47:10 +01:00
clear.1 Refactor clear(1) 2015-09-07 11:47:10 +01:00
clear.c Remove stdlib.h from clear(1) 2015-09-07 11:47:10 +01:00
config.def.h Add last and lastb 2014-10-16 11:28:01 +01:00
config.mk Use CC for ubase-box, remove LD 2015-09-03 19:57:21 +01:00
ctrlaltdel.8 Minor newline fix in ctrlaltdel.8 2015-09-07 12:09:59 +01:00
ctrlaltdel.c Refactor ctrlaltdel(8) 2015-09-07 12:09:59 +01:00
dd.1 dd: implement conv=notrunc support 2016-03-16 10:17:51 +00:00
dd.c dd: Use sigaction(2) to obviate select(2) 2017-10-10 16:28:15 +01:00
df.1 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
df.c df: Don't scream if statvfs() fails 2016-02-16 15:20:10 +00:00
dmesg.1 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
dmesg.c dmesg: fix usage and code-style 2015-02-06 15:16:24 +00:00
eject.1 Refactor eject(1) 2015-09-09 23:33:17 +01:00
eject.c Refactor eject(1) 2015-09-09 23:33:17 +01:00
fallocate.1 Fix fallocate(1) manpage 2015-09-14 10:15:55 +01:00
fallocate.c Refactor fallocate(1) 2015-09-14 10:15:55 +01:00
free.1 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
free.c code-style: cleanup 2015-02-06 15:16:24 +00:00
freeramdisk.8 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
freeramdisk.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
fsfreeze.8 fsfreeze: make it clear the either -f or -u must be specified, not optional 2016-03-26 19:08:10 +00:00
fsfreeze.c fsfreeze: make it clear the either -f or -u must be specified, not optional 2016-03-26 19:08:10 +00:00
getty.8 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
getty.c code-style: cleanup 2015-02-06 15:16:24 +00:00
halt.8 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
halt.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
hwclock.8 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
hwclock.c code-style: cleanup 2015-02-06 15:16:24 +00:00
id.1 id: Implement -n 2015-04-26 10:40:09 +01:00
id.c id: Implement -n 2015-04-26 10:40:09 +01:00
insmod.8 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
insmod.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
killall5.8 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
killall5.c Fix segfault in killall5 without -o 2018-06-30 17:31:53 +01:00
last.c last: spaces to tabs 2015-02-20 15:36:33 +00:00
lastlog.8 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
lastlog.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
login.1 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
login.c code-style: cleanup 2015-02-06 15:16:24 +00:00
lsmod.8 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
lsmod.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
lsusb.8 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
lsusb.c lsusb, ps: style: put main at bottom 2015-03-11 15:18:10 +00:00
mesg.1 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
mesg.c Stop using *_FILENO 2014-11-30 13:12:33 +00:00
mknod.1 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
mknod.c Explicitly include sys/sysmacros.h for makedev etc 2023-09-26 09:22:32 +02:00
mkswap.8 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
mkswap.c Turn enumeration into #defines 2014-11-30 12:34:26 +00:00
mount.8 mount: helper support + improvements 2015-05-11 23:35:54 +01:00
mount.c mount: don't call realpath on root target 2018-06-30 17:38:07 +01:00
mountpoint.1 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
mountpoint.c Explicitly include sys/sysmacros.h for makedev etc 2023-09-26 09:22:32 +02:00
nologin.8 Add nologin(8) 2016-03-26 19:08:10 +00:00
nologin.c nologin: Sort includes 2016-03-26 19:08:10 +00:00
pagesize.1 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
pagesize.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
passwd.1 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
passwd.c passwd: fix crashes for unencrypted passwords starting with 'x'. 2019-01-30 11:58:55 +00:00
passwd.h passwd: fix /etc/passwd support, ... 2014-07-14 11:14:36 +01:00
pidof.1 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
pidof.c Use SLIST instead of TAILQ for pidof(8) 2015-10-07 13:57:24 +01:00
pivot_root.8 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00: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 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
ps.c ps: fix argv0 position in usage line 2018-06-30 17:27:45 +01:00
pwdx.1 Add pwdx(1) 2016-04-20 23:08:51 +01:00
pwdx.c pwdx: fix off-by-one bug 2016-04-20 23:08:51 +01:00
queue.h Import sys/queue.h and move over existing tools 2014-06-30 13:06:07 +01:00
readahead.8 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00: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 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
respawn.c respawn: reopen the fifo at end of line, and use read-only 2016-09-26 09:57:54 +01:00
rmmod.8 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00: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 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
stat.c Explicitly include sys/sysmacros.h for makedev etc 2023-09-26 09:22:32 +02:00
su.1 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
su.c code-style: cleanup 2015-02-06 15:16:24 +00:00
swaplabel.8 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
swaplabel.c Don't initialize unneeded variables in swaplabel(8) 2014-11-29 21:32:53 +00:00
swapoff.8 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
swapoff.c swapon, swapoff: show usage with -a device 2015-02-06 15:16:24 +00:00
swapon.8 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
swapon.c swapon, swapoff: show usage with -a device 2015-02-06 15:16:24 +00:00
switch_root.8 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
switch_root.c switch_root: execv: show error string 2015-05-10 13:41:23 +01:00
sysctl.8 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00: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 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
truncate.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
umount.8 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
umount.c umount: Fix use of uninitialized variable 2019-03-14 11:42:59 +00:00
unshare.1 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
unshare.c Stop using EXIT_{SUCCESS,FAILURE} 2014-10-02 23:47:39 +01:00
uptime.1 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
uptime.c uptime: Fix user/s printing (grammar error) when users == 0. 2019-01-30 11:25:33 +00:00
util.h Refactor fallocate(1) 2015-09-14 10:15:55 +01:00
vtallow.1 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
vtallow.c vtallow, who: usage using argv0 2015-02-06 15:16:23 +00:00
watch.1 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
watch.c watch: If period is negative default to 0.1s 2014-11-30 14:08:42 +00:00
who.1 doc: convert man pages to mandoc, fix some typos in the process 2015-02-06 15:16:23 +00:00
who.c vtallow, who: usage using argv0 2015-02-06 15:16:23 +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: make ubase-box-install.

To run the tools for ubase-box directly use: 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/