Bringing Classic Mac Archives to Modern Unix: The 'sit' Tool Reimagined
Share this article
From Usenet to Xcode: A Brief History
The original sit was born in 1988 when Tom Bereiter posted a C program to the comp.sources.mac newsgroup. It was designed for the Unix era before macOS, assuming that files either had no resource fork or were split into three separate binaries: .data, .rsrc, and .info.
Fast forward to 2024: macOS is a Unix‑like system, and developers still sometimes need to hand off files to classic Mac OS or emulators. The new sit on GitHub (https://github.com/thecloudexpanse/sit) updates that old code to read native resource forks, recurse directories, and output a proper StuffIt 1.5.1 archive.
How It Works
At its core, sit is a tiny command‑line tool written in plain C. It accepts files or directories, walks the file tree, and writes a .sit archive that includes:
- Data fork (the file’s main content)
- Resource fork (macOS metadata, icons, etc.)
- File type/creator (defaults to
TEXT/KAHLbut can be overridden)
Unlike the original, it does not compress data; the goal is portability, not size savings.
Usage
# Basic archive of three files
sit file1 file2 file3
# Archive a folder into a custom archive name
sit -o FolderArchive.sit FolderToBeArchived
Options:
- -v, -vv, -vvv – Increase verbosity.
- -T type – Override the default file type.
- -C creator – Override the default creator code.
- -u – Convert Unix linefeeds (
) to classic Mac carriage returns (\r). Use sparingly.
Building
# Assuming Xcode Command Line Tools are installed
cd sit
make
The resulting binary can be run on macOS, Linux, or any Unix‑like system.
Why It Matters
Many legacy workflows—particularly in the Apple II/Classic Mac OS community—still rely on StuffIt archives. When developers need to ship a set of documents, scripts, or even legacy applications to a Mac running 10.4 or an emulator like Basilisk II, having a tool that preserves resource forks is invaluable.
Moreover, sit demonstrates a broader trend: modern tooling that respects historical file formats. As the industry moves toward containerization and cloud storage, the ability to produce a portable, self‑contained archive that older systems can consume remains a niche but critical capability.
Caveats
- No compression: the archive size equals the sum of the input files.
- The tool is unmaintained and may contain bugs; use at your own risk.
- The
-uoption is rarely needed and can corrupt non‑text files.
Bottom Line
If you’re a developer who occasionally needs to hand off files to a classic Mac environment, sit is a handy, lightweight companion. It brings an old, beloved format back into the Unix toolbox with minimal friction.
Source: https://github.com/thecloudexpanse/sit