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.
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.