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.
Download the source code
The latest release is .
You can use the command below retrieve a release copy from one of
SourceForge.net servers, since it'll probably be stored on a place
closer to you than our main server:
$ curl -SOL# https://sf.net/projects/heirloom-ng/files/YYMMDD/heirloom-YYMMDD.tar.bz2
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 — also available as a mirror at SourceForge.net, if you wish.
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 instructions regarding building Heirloom NG as an alternative to other toolsets at the branch bsd-userland;
- 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 — 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,
BSD 4-Clause,
CDDL-1.0 and
LGPL v2.1/
GPL v2.0.
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.