utils-std.shtml (6233B)
- <!DOCTYPE html>
- <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
- <head>
- <!--#include file="/templates/head.shtml" -->
- <title>utils-std — lanodan’s cyber-home</title>
- <body>
- <!--#include file="/templates/en/nav.shtml" -->
- <!--#set var="baseName" value='utils-std-0.2.0' -->
- <!--#set var="signifyName" value='2026' -->
- <main>
- <nav>
- <a href="/projects/utils-std">Homepage</a>
- <a href="/git/utils-std.mdoc/">Documentation</a>
- <a href="/git/utils-std/" rel="vcs-git">Source Code</a>
- <a href="https://todo.sr.ht/~lanodan/utils-std">Tickets</a>
- <!--<a href="https://repology.org/project/utils-std/versions">Packages</a>-->
- </nav>
- <h1 itemprop="name"><a href="/projects">projects</a>/utils-std</h1>
- <p itemprop="description">
- utils-std is a collection of commonly available unix tools (cat, cp, rm, mkdir, …).
- POSIX is used as a guide, but current Unix systems are the biggest inspiration and compatibility with portable scripts is intended.
- </p>
- <h2>Design differences</h2>
- <ul>
- <li>Whenever possible programs prefix their messages with their name, then error messages contain "<code>error: </code>", and warning messages contain "<code>warning: </code>". This allows to more easily find what went wrong in logs.</li>
- <li>When the output is structured data, a terminal gets human-oriented output, others like piped programs get slightly more machine-oriented output.</li>
- <li>
- As the <code>utmp</code> and <code>wtmp</code> files are considered broken by design, utilities dependent on them like <code>who</code> and <code>lastlog</code> won't be implemented.
- Proper authentication logs shouldn't be writable into by multiple programs, some of them third-party (like SSH and Display Managers typically are).
- </li>
- <li>Minimal dependencies, allowing to bootstrap utils-std without already having the utilities it implements.</li>
- <li>No binary blobs, no pre-generated files, even in the testsuite.</li>
- </ul>
- <h2>Releases</h2>
- <p>
- <strong>Warning!</strong> While utils-std technically can be used
- in production, not all the utilities are implemented.
- And it's also not intended to be 100% compatible with another
- implementation such a coreutils.
- As such I would currently disrecommend it in environments where
- the users aren't also capable of debugging shell related issues.
- </p>
- <ul>
- <!--<li>From packages: <a href="https://repology.org/project/utils-std/versions">list of repositories</a></li>-->
- <li>From source:
- <code><a href="https://distfiles.hacktivis.me/releases/utils-std/<!--#echo var="baseName" -->.tar.gz"><!--#echo var="baseName" -->.tar.gz</a></code>
- (<a href="https://distfiles.hacktivis.me/releases/utils-std/<!--#echo var="baseName" -->.tar.gz.sign">signify/minisign</a>)
- <a href="https://distfiles.hacktivis.me/releases/utils-std/<!--#echo var="baseName" -->.txt">changelog</a>
- </li>
- </ul>
- <p>
- utils-std is using <a href="https://semver.org/spec/v2.0.0.html">Semantic Versioning</a> with considering that the User-Interface is part of the interface stabilisation.
- <!--Release branches (ie. <code>1.0.x</code>) are supported for 6 months for any bug fixes and 2 years for security fixes.-->
- </p>
- <p>
- Tarball is signed with signify, you can find the key at <a href="https://distfiles.hacktivis.me/releases/signify/<!--#echo var="signifyName" -->.pub">https://distfiles.hacktivis.me/releases/signify/<!--#echo var="signifyName" -->.pub</a>.
- For more information (signify implementations, key rotation / lifetime, …) see <a href="https://distfiles.hacktivis.me/releases/signify/README.html">https://distfiles.hacktivis.me/releases/signify/README.html</a>.
- <br />
- The command to verify the tarball looks like this: <code><kbd>signify -V -p signify/<!--#echo var="signifyName" -->.pub -x <!--#echo var="baseName" -->.tar.gz.sign -m <!--#echo var="baseName" -->.tar.gz</kbd></code>
- </p>
- <h2>Tested and supported platforms</h2>
- <dl>
- <dt>OS</dt>
- <dd>Linux-musl, Linux-glibc, NetBSD, FreeBSD. And Haiku at best effort due to lack of CI</dd>
- <dt>CPU Architectures</dt>
- <dd>x86_64/amd64. And armv8+/aarch64, aarch64_be, riscv64 at best effort due to lack of CI</dd>
- <dt>C Compilers</dt>
- <dd>GCC, Clang, TinyCC, cproc</dd>
- </dl>
- <p>
- Similar systems should work, feel free to reports tests/bugs and volunteer on testing before releases are published.<br />
- Proprietary systems (Windows, MacOS, Oracle Solaris, …) are unsupported.
- </p>
- <h2 id="contacts">Contacts / Discussions</h2>
- <dl>
- <dt>IRC Channel</dt>
- <dd><a href="ircs://irc.geeknode.org/#utils-std">#utils-std on GeekNode</a></dd>
- <dt>Reaching main author directly</dt>
- <dd><a href="/about">contact page</a></dd>
- </dl>
- <h2>Tickets (bug, feature request, …)</h2>
- <p>
- Use the contact methods above before to confirm where your bug comes from,
- then you may use <a href="https://todo.sr.ht/~lanodan/utils-std">https://todo.sr.ht/~lanodan/utils-std</a> (no accounts needed).
- </p>
- <p>For security issues, sending me an email to <a href="mailto:contact+utils-std@hacktivis.me">contact+utils-std@hacktivis.me</a> is the preferred way.</p>
- <h2>Contributing</h2>
- <p>Please try to use one of the contact methods shown above before doing modifications, it seriously helps on integrating your contribution and could also point you at resources if you need help. Feel free to drop me a repository or patches of your local modifications though.</p>
- <h3>Code</h3>
- <p>
- <kbd><code>git clone https://anongit.hacktivis.me/git/utils-std.git</code></kbd> (<a href="https://hacktivis.me/git/utils-std/">WebView</a>)
- You can then send patches or your repository URL to <a href="mailto:contact+utils-std@hacktivis.me"><code>contact+utils-std@hacktivis.me</code></a>. <code>git send-email</code> is highly recommended, <a href="https://git-send-email.io/">here is a tutorial</a>.
- </p>
- <h2>See also</h2>
- <h3>Own articles</h3>
- <ol>
- <li>2024-06-23: <a href="/articles/bootstrap-initrd">bootstrap-initrd: A self-building environment based on tcc+musl</a></li>
- </ol>
- </main>
- <!--#include file="/templates/en/footer.shtml" -->
- </body>
- </html>