logo

blog

My website can't be that messy, right? git clone https://anongit.hacktivis.me/git/blog.git/

utils-std.shtml (6323B)


  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
  3. <head>
  4. <!--#include file="/templates/head.shtml" -->
  5. <title>utils-std — lanodan’s cyber-home</title>
  6. <body itemscope="" itemtype="https://schema.org/SoftwareApplication">
  7. <!--#include file="/templates/en/nav.shtml" -->
  8. <!--#set var="baseName" value='utils-std-0.0.1' -->
  9. <!--#set var="signifyName" value='2024' -->
  10. <main itemprop="applicationCategory" content="BrowserApplication">
  11. <nav>
  12. <a href="/projects/utils-std">Homepage</a>
  13. <a href="/git/utils-std.mdoc/">Documentation</a>
  14. <a href="/git/utils-std/" rel="vcs-git">Source Code</a>
  15. <a href="https://todo.sr.ht/~lanodan/utils-std">Tickets</a>
  16. <!--<a href="https://repology.org/project/utils-std/versions">Packages</a>-->
  17. </nav>
  18. <h1 itemprop="name">utils-std</h1>
  19. <p itemprop="description">
  20. utils-std is a collection of commonly available unix tools (cat, cp, rm, mkdir, …).
  21. POSIX is used as a guide, but current Unix systems are the biggest inspiration and compatibility with portable scripts is intended.
  22. </p>
  23. <h2>Design differences</h2>
  24. <ul>
  25. <li>Whenever possible programs prefix their messages with their name. This way you don't end up with context-less messages.</li>
  26. <li>Error messages contain "<code>error: </code>", warning messages contain "<code>warning: </code>". To allow to easily find what went wrong in logs.</li>
  27. <li>
  28. When the output is structured data, a terminal gets human-oriented output, others like piped programs get machine-oriented output (no padding, line separation, CSV, JSON, …).<br />
  29. Prior art: most <code>ls(1)</code> implementations, i3/sway, FreeBSD utils via <code>libxo</code>, …
  30. </li>
  31. <li>
  32. 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.
  33. Proper authentication logs shouldn't be writable into by multiple programs, some of them third-party (like SSH and Display Managers typically are).
  34. </li>
  35. <li>Minimal dependencies, allowing to bootstrap utils-std without already having the utilities it implements.</li>
  36. <li>No binary blobs, even in the testsuite. Output of generated code is itself auditable.</li>
  37. </ul>
  38. <h2>Releases</h2>
  39. <p>
  40. <strong>Warning!</strong> While utils-std can be used in production, not all the utilities are implemented which doesn't makes it a full replacement to other projects like coreutils or sbase yet.
  41. </p>
  42. <ul>
  43. <!--<li>From packages: <a href="https://repology.org/project/utils-std/versions">list of repositories</a></li>-->
  44. <li>From source:
  45. <code><a href="/releases/utils-std/<!--#echo var="baseName" -->.tar.gz"><!--#echo var="baseName" -->.tar.gz</a></code>
  46. (<a href="/releases/utils-std/<!--#echo var="baseName" -->.tar.gz.sign">signify/minisign</a>)
  47. <a href="/releases/utils-std/<!--#echo var="baseName" -->.txt">changelog</a>
  48. </li>
  49. </ul>
  50. <p>
  51. 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.
  52. <!--Release branches (ie. <code>1.0.x</code>) are supported for 6 months for any bug fixes and 2 years for security fixes.-->
  53. </p>
  54. <p>
  55. Tarball signature check:
  56. <a href="https://flak.tedunangst.com/post/signify">signify</a> (<a href="https://github.com/aperezdc/signify/">portable version maintained by Adrian Perez</a>) is the recommended tool to use.
  57. You can find the key at <a href="/releases/signify/<!--#echo var="signifyName" -->.pub">/releases/signify/<!--#echo var="signifyName" -->.pub</a>,
  58. you can find more info about how I manage the keyset in: <a href="/articles/Bootstrapping%20signify%20for%20my%20assets">Bootstrapping signify for my assets</a>.<br />
  59. 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>
  60. </p>
  61. <h2>Tested and supported platforms</h2>
  62. <dl>
  63. <dt>OS</dt>
  64. <dd>Linux-musl, Linux-glibc, NetBSD, FreeBSD. And Haiku at best effort due to lack of CI</dd>
  65. <dt>CPU Architectures</dt>
  66. <dd>x86_64/amd64, armv8+/aarch64, riscv64</dd>
  67. <dt>C Compilers</dt>
  68. <dd>GCC, Clang, TinyCC, cproc</dd>
  69. </dl>
  70. <p>
  71. Similar systems should work, feel free to reports tests/bugs and volunteer on testing before releases are published.<br />
  72. Proprietary systems (Windows, MacOS, Oracle Solaris, …) are unsupported.
  73. </p>
  74. <h2 id="contacts">Contacts / Discussions</h2>
  75. <dl>
  76. <dt>IRC Channel</dt>
  77. <dd><a href="ircs://irc.geeknode.org/#utils-std">#utils-std on GeekNode</a></dd>
  78. <dt>Reaching main author directly</dt>
  79. <dd><a href="/about">contact page</a></dd>
  80. </dl>
  81. <h2>Tickets (bug, feature request, …)</h2>
  82. <p>
  83. Use the contact methods above before to confirm where your bug comes from,
  84. then you may use <a href="https://todo.sr.ht/~lanodan/utils-std">https://todo.sr.ht/~lanodan/utils-std</a> (no accounts needed).
  85. </p>
  86. <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>
  87. <h2>Contributing</h2>
  88. <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>
  89. <h3>Code</h3>
  90. <p>
  91. <kbd><code>git clone https://anongit.hacktivis.me/git/utils-std.git</code></kbd> (<a href="https://hacktivis.me/git/utils-std/">WebView</a>)
  92. 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>.
  93. </p>
  94. <h2>See also</h2>
  95. <h3>Own articles</h3>
  96. <ol>
  97. <li>2024-06-23: <a href="/articles/bootstrap-initrd">bootstrap-initrd: A self-building environment based on tcc+musl</a></li>
  98. </ol>
  99. </main>
  100. <!--#include file="/templates/en/footer.shtml" -->
  101. </body>
  102. </html>