commit briefs
2006ea5
xplshn
·
2026-07-07
57ba0f9
xplshn
·
2026-07-07
4bb01f6
xplshn
·
2026-07-07
b52592b
xplshn
·
2026-07-06
c9e91a9
xplshn
·
2026-07-02
aaaa864
xplshn
·
2026-07-02
3cd6e7c
xplshn
·
2026-07-02
a9a2328
xplshn
·
2026-07-02
tree
87 L
42 L
69 L
89 L
219 L
251 L
679 L
readme
1Argentino Roca Unix Utilities
2=============================
3
4ARUU is a unified fork of sbase and ubase, it is an effort trying to
5complete SBASE & UBASE., new utils partially based on toybox have
6been added, specifically, the utils under cmd/net are partially based
7on their toybox applet equivalent.
8
9The codebase has diverged a lot since the project started. And we have
10a myriad of utilities which were written specifically for ARUU.
11We also have greatly simplified ports of components from other systems
12and projects, such as FreeBSD sh, minix yap (pager (thanks shrub)),
13onetrueawk, etc.
14
15OVERVIEW
16========
17
18aruu builds two things:
19
20 1. individual tool binaries (default 'make all')
21 2. aruu-box: a multi-call binary containing every tool ('make box')
22
23The multi-call binary is built by ninqu's box group (BOX_OBJ, BOX_DISPATCH,
24and BOX in ninqu.rules). Each enabled tool gets objcopied so only its
25renamed main stays global, scripts/genbox.sh turns the resulting object
26paths into a C dispatch table, and everything links into one binary.
27Invoke tools by symlinking aruu-box to the tool name, or by running:
28
29 aruu-box <command> [args...]
30
31To install symlinks into a directory:
32
33 aruu-box -i /usr/local/bin
34
35REQUIREMENTS
36============
37
38 cc POSIX.1-2008-compliant C compiler (pcc, etc)
39 make POSIX make (aruu make, pdpmake, gmake, bmake)
40 ar archive tool
41 ranlib archive indexer
42 objcopy for 'make box' only
43
44Optional:
45
46 yacc only needed if rebuilding bc from bc.y
47
48HOW THE BUILD WORKS
49====================
50
51make builds cmd/dev/ninqu/ninqu, then forwards whatever target you
52gave it (make all, make box, make clean, ...) straight to that binary.
53
54ninqu reads ninqu.rules, which pulls in scripts/mk/config.set. That
55file is generated by scripts/genconfig.sh, which reads build.cfg,
56resolves every preset and per-tool override, and writes config.set
57(read by ninqu), config.kv (shell-sourced by genbox.sh), and
58scripts/mk/features.h (the resolved FEATURE_* set, pulled into every
59compile with -include).
60
61To change what gets built, or see what a preset turns on or off,
62edit or read build.cfg. That is the one file genconfig.sh expands
63from, everything downstream of it is generated and safe to delete.
64
65BUILDING
66========
67
68Build all individual tools:
69
70 make
71
72Build the multi-call binary:
73
74 make box
75
76Both targets can be combined:
77
78 make all box
79
80Configuration is in build.cfg. You can override compile flags via make
81or with ninqu's -D flag (see HOW THE BUILD WORKS above).
82
83INSTALL
84=======
85
86 make install installs individual tools to $(PREFIX)/bin
87 aruu-box -i /usr/bin installs symlinks for the box binary
88
89SOURCE LAYOUT
90=============
91
92 Makefile builds cmd/dev/ninqu/ninqu, forwards to it
93 ninqu.rules all real build knowledge, read by ninqu
94 build.cfg presets and per-tool overrides
95 scripts/
96 genconfig.sh build.cfg -> config.set/config.kv/features.h
97 genbox.sh writes aruu-box's dispatch table
98 getconf.sh generates cmd/posix/getconf.h at build time
99 mkbox legacy, superseded by ninqu's box group
100 shared/
101 *.h project headers (util.h, arg.h, utf.h, ...)
102 libutil/ utility library (eprintf, ealloc, recurse, ...)
103 libutf/ UTF-8/rune library
104 cmd/
105 posix/ POSIX.1-2008 tools (sh, make, grep, sed, pax, ...)
106 linux/ Linux-specific tools (mount, dmesg, insmod, ...)
107 net/ networking tools (wget, ip, ping, nc, ...)
108 pseudo/ widely-used non-POSIX tools (tar, stat, seq, ...)
109 xsi/ XSI-extension tools (mknod, su, passwd)
110 extra/ third-party-flavored extras (yap, b3sum, fdisk, ...)
111 dev/ small toolchain tooling (ninqu, in the future: as, cc, ld, ar)
112
113 See PRESET_UTILS in build.cfg to understand, en/dis/able the build of a set
114
115TOOLS
116=====
117
118posix:
119 [, awk, basename, bc, cal, cat, chgrp, chmod, chown, cksum, cmp, comm,
120 cp, cut, date, dd, df, diff, dirname, du, echo, ed, env, expand, expr,
121 false, find, fold, getconf, grep, head, id, join, kill, link, ln,
122 logger, logname, ls, make, mesg, mkdir, mkfifo, mv, nice, nl, nohup,
123 od, paste, patch, pathchk, pax, printf, ps, pwd, readlink, renice, rm,
124 rmdir, sed, sh, sleep, sort, split, tail, tee, test, time, touch, tr,
125 true, tsort, tty, uname, unexpand, uniq, unlink, uudecode, uuencode,
126 wc, who, xargs
127
128linux:
129 blkdiscard, chvt, ctrlaltdel, depmod, eject, freeramdisk, fsfreeze,
130 hwclock, insmod, lsmod, lsusb, mkswap, modprobe, mount, mountpoint,
131 pivot_root, readahead, rmmod, swaplabel, swapoff, swapon, switch_root,
132 sysctl, tunctl, umount, unshare, vtallow
133
134net:
135 host, httpd, ifconfig, ip, netcat, ping, sdhcp, tftp, wget
136
137pseudo:
138 base64, chroot, clear, cols, cron, diff3, dmesg, fallocate, flock,
139 free, getty, halt, hostname, install, killall5, last, lastlog, login,
140 md5sum, mkpasswd, mktemp, nologin, pagesize, pidof, printenv, pwdx,
141 respawn, rev, seq, setsid, sha1sum, sha224sum, sha256sum, sha384sum,
142 sha512-224sum, sha512-256sum, sha512sum, sponge, stat, tar, truncate,
143 uptime, watch, which, whoami, xinstall, yes
144
145xsi:
146 mknod, passwd, su
147
148extra:
149 b3sum, blkid, fdisk, lsblk, sync, yap
150
151TODOs / PENDING RELEASE
152=======================
153init - vendor cowmonk's
154troff - neatroff? create cmd/9?
155man - unsure, this is not a fun task
156vendor and publish my compiler toolchain (small binutils + cproc), even if incomplete - unsure
157
158LICENSE
159=======
160
161ISC, see ./LICENSE for details. Credits:
162Copyright (C) 2006, 2019 Rob Landley [rob@landley.net](mailto:rob@landley.net)
163Copyright (c) 2011 Connor Lane Smith [cls@lubutu.com](mailto:cls@lubutu.com)
164Copyright (c) 2011-2016 Dimitris Papastamos [sin@2f30.org](mailto:sin@2f30.org)
165Copyright (c) 2011 Hiltjo Posthuma [hiltjo@codemadness.org](mailto:hiltjo@codemadness.org)
166Copyright (c) 2011 Kamil Cholewiński [harry666t@gmail.com](mailto:harry666t@gmail.com)
167Copyright (c) 2011 pancake [pancake@youterm.com](mailto:pancake@youterm.com)
168Copyright (c) 2011 Random832 [random832@fastmail.us](mailto:random832@fastmail.us)
169Copyright (c) 2011 Rob Pilling [robpilling@gmail.com](mailto:robpilling@gmail.com)
170Copyright (c) 2012 Christoph Lohmann [20h@r-36.net](mailto:20h@r-36.net)
171Copyright (c) 2012 David Galos [galosd83@students.rowan.edu](mailto:galosd83@students.rowan.edu)
172Copyright (c) 2012 Kurt H. Maier [khm@sciops.net](mailto:khm@sciops.net)
173Copyright (c) 2012 Robert Ransom [rransom.8774@gmail.com](mailto:rransom.8774@gmail.com)
174Copyright (c) 2012 William Haddon [william@haddonthethird.net](mailto:william@haddonthethird.net)
175Copyright (c) 2013 Anselm R Garbe [anselm@garbe.us](mailto:anselm@garbe.us)
176Copyright (c) 2013 Christian Hesse [mail@eworm.de](mailto:mail@eworm.de)
177Copyright (c) 2013 David Galos [galosd83@students.rowan.edu](mailto:galosd83@students.rowan.edu)
178Copyright (c) 2013-2016 Dimitris Papapastamos [sin@2f30.org](mailto:sin@2f30.org)
179Copyright (c) 2013 dsp [dsp@2f30.org](mailto:dsp@2f30.org)
180Copyright (c) 2013 Federico G. Benavento [benavento@gmail.com](mailto:benavento@gmail.com)
181Copyright (c) 2013 Jakob Kramer [jakob.kramer@gmx.de](mailto:jakob.kramer@gmx.de)
182Copyright (c) 2013 Jesse Ogle [jesse.p.ogle@gmail.com](mailto:jesse.p.ogle@gmail.com)
183Copyright (c) 2013 Lorenzo Cogotti [miciamail@hotmail.it](mailto:miciamail@hotmail.it)
184Copyright (c) 2013 Markus Teich [markus.teich@stusta.mhn.de](mailto:markus.teich@stusta.mhn.de)
185Copyright (c) 2013 Markus Wichmann [nullplan@gmx.net](mailto:nullplan@gmx.net)
186Copyright (c) 2013 oblique [psyberbits@gmail.com](mailto:psyberbits@gmail.com)
187Copyright (c) 2013 Roberto E. Vargas Caballero [k0ga@shike2.com](mailto:k0ga@shike2.com)
188Copyright (c) 2013 s-p-k [mr.dwts@gmail.com](mailto:mr.dwts@gmail.com)
189Copyright (c) 2013 Truls Becken [truls.becken@gmail.com](mailto:truls.becken@gmail.com)
190Copyright (c) 2014 Adria Garriga [rhaps0dy@installgentoo.com](mailto:rhaps0dy@installgentoo.com)
191Copyright (c) 2014 Ari Malinen [ari.malinen@gmail.com](mailto:ari.malinen@gmail.com)
192Copyright (c) 2014 Brandon Mulcahy [brandon@jangler.info](mailto:brandon@jangler.info)
193Copyright (c) 2014 Carlos J. Torres [vlaadbrain@gmail.com](mailto:vlaadbrain@gmail.com)
194Copyright (c) 2014 Daniel Bainton [dpb@driftaway.org](mailto:dpb@driftaway.org)
195Copyright (c) 2014 Evan Gates [evan.gates@gmail.com](mailto:evan.gates@gmail.com)
196Copyright (c) 2014-2015 Greg Reagle [greg.reagle@umbc.edu](mailto:greg.reagle@umbc.edu)
197Copyright (c) 2014-2016 Hiltjo Posthuma [hiltjo@codemadness.org](mailto:hiltjo@codemadness.org)
198Copyright (c) 2014 Jan Tatje [jan@jnt.io](mailto:jan@jnt.io)
199Copyright (c) 2014 Jeffrey Picard [jeff@jeffreypicard.com](mailto:jeff@jeffreypicard.com)
200Copyright (c) 2014-2016 Laslo Hunhold [dev@frign.de](mailto:dev@frign.de)
201Copyright (c) 2014 Michael Forney [mforney@mforney.org](mailto:mforney@mforney.org)
202Copyright (c) 2014 Roberto E. Vargas Caballero [k0ga@shike2.com](mailto:k0ga@shike2.com)
203Copyright (c) 2014 Silvan Jegen [s.jegen@gmail.com](mailto:s.jegen@gmail.com)
204Copyright (c) 2014 Tuukka Kataja [stuge@xor.fi](mailto:stuge@xor.fi)
205Copyright (c) 2015 Dionysis Grigoropoulos [info@erethon.com](mailto:info@erethon.com)
206Copyright (c) 2015 Quentin Rameau [quinq@fifth.space](mailto:quinq@fifth.space)
207Copyright (c) 2015 Risto Salminen [ripejcp@gmail.com](mailto:ripejcp@gmail.com)
208Copyright (c) 2015 Tai Chi Minh Ralph Eastwood [tcmreastwood@gmail.com](mailto:tcmreastwood@gmail.com)
209Copyright (c) 2015 Wolfgang Corcoran-Mathe [wcm@sigwinch.xyz](mailto:wcm@sigwinch.xyz)
210Copyright (c) 2016 Eivind Uggedal [eivind@uggedal.com](mailto:eivind@uggedal.com)
211Copyright (c) 2016 Mattias Andrée [m@maandree.se](mailto:m@maandree.se)
212Copyright (c) 2026 xplshn [anto@xplshn.com.ar](mailto:anto@xplshn.com.ar) (https://github.com/xplshn)
213
214Portions of this software (specifically utils under net/) are partially based on code written by Rob Landley
215Our line editing library is partially based on work by Salvatore Sanfilippo (linenoise) and JC Wang (crossline)
216The rest are based on SBASE/UBASE source code
217
218=~= Argentino Roca Unix Utilities =~= https://github.com/xplshn/aruu =~=