Heirloom Toolchest
NEW GENERATION

What is it?

Heirloom NG is a collection of standard UNIX® utilities that is intended to provide maximum compatibility with traditional UNIX® while incorporating additional features necessary today.
It's mostly written from scratch, along with some tools that were released under open source licences by Caldera International Inc. and Sun Microsystems.
It provides many UNIX® utilities, with some having variants for compatibility with various specifications — to be specific, SVID3/SVR4, SVID4/SVR4.2MP, POSIX.2-1992/SUSV2, POSIX.1-2001/SUSV3, and BSD (a.k.a. SVR4's /usr/ucb).

What are the differences from the last release of Heirloom Toolchest?

The last release of the original Heirloom Toolchest project was made in July 15th of 2007. Since then, many things have changed, such as UNIX®-compatible systems ABIs having dropped legacy functions and data structures that were inherited from workarounds/bad practices present in older systems.
Although trying to maintain compatibility with environments that the pre-fork releases already supported, Heirloom NG also ported the code to work with newer systems and standard C libraries.
Another change was the finality: while the old Heirloom Toolchest was aimed just to "caters to people who like to operate their computers using a traditional Unix command line interface", Heirloom NG arose from the need of a complete alternative to existent toolsets, along with the idea of also having a traditional and stone-cold environment, so new tools, such as chroot(8) and readlink(1) were implemented.
In sum, Heirloom NG is the original Heirloom Toolchest, but maintained and enhanced with the idea of supplying a full UNIX®-compatible toolset.
Although this fork started out just as a set of poorly made fixes with the sole intent to make it work as Copacabana's userspace back in October 4th, 2021, it gained independence in 2022 and better portability fixes than before, becoming a new project that is not as "Copacabana-centric" as before.

Download the source code

The latest release is .
You can use the command below retrieve a release copy from one of Pindorama project servers:

    $ curl -SO# http://pindorama.dob.jp/pub/heirloom-ng/YYMMDD.tar.gz

Or, if you prefer, you can also retrieve a copy both from the current development tree or a release directly from the git repository:

    $ git clone -b [master|YYMMDD] https://github.com/Projeto-Pindorama/heirloom-ng.git

Just want to read the code? Browse the git repository at Microsoft GitHub — and now also available as a mirror at SourceForge.net!

Got the old tarball from sourceforge.net? No trouble, we've got you covered.
If, for some reason, you only have access to the old '07 tarball from the original Heirloom Project and want to use Heirloom NG's fixes and features, you can get a giga-patch from the Microsoft GitHub repository and apply it:

    $ curl -So gigapatch.diff https://github.com/Projeto-Pindorama/heirloom-ng/compare/070715...[master|YYMMDD].diff
    $ cd heirloom-070715; patch -Np1 < ../gigapatch.diff

Users

This is a list of projects currently and/or planning to utilize Heirloom NG as an alternative or the as the default UNIX®-compatible tool set.

  • Copacabana Linux® has Heirloom NG as an integral part of its userspace;
  • Clang Musl-LFS already has a placeholder for instructions regarding building Heirloom NG as an alternative to other toolsets;
  • crosware, which is a set of tools and "recipes" for building software on ChromeOS, includes Heirloom NG in the list of "recipes to consider".
  • Chip in!

    We can't make this happen all alone. There are many ways you can chip in. Testing for compatibility or bugs? Implementing the latest POSIX standard at the default variants of commands? Implementing lacking commands? There you go.
    Read more about the details at the "README".

    Help me if you can, I'm feeling down...

    Here is a list of all the issues open at the GitHub repository, which is a way to discuss problems or even features and, of course, to make new contributors aware of what is currently in need of help to get implemented.

    Won't you please, please help me?

    Contributors

    Licence

    The vast majority of the files — 199 of the 508 (39%), including manual pages and source code written in different languages — are licenced under the ZLib licence, which is also the default and required licence for new contributions.
    Other licences include Caldera (138 files, 27%), BSD 4-Clause (35 files, 6%), CDDL-1.0 (109 files, 21%) and LGPL v2.1/ GPL v2.0 (27 files, 5%).
    If you need to know about which files use which licences, you can easily check for the "SPDX-Licence-Identifier" header on each of the files.