master

Argentino Roca Unix Utilities

cmd
55 L
69 L
61 L
221 L
266 L
790 L

readme

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