aslice

aslice is a package manager for Intel Macs running macOS 10.11 (El Capitan) through 12 (Monterey) — every 64-bit Intel Mac, from the 2007 Core 2 Duo machines through the final Intel models of 2020.

These machines still work. What stopped working is the software supply around them: Apple no longer ships them security updates, and Homebrew, the package manager most of them run, has moved on to Apple Silicon. aslice specifies a software supply for that fixed platform, with maintained packages, reproducible inputs, and explicit recovery contracts.

What you get:

Vocabulary

Four words carry most of the design:

Every other term the documents use is defined in NOMENCLATURE.md.

Status

Early prototype. The C++20 CLI implements help, version reporting, and offline aslice db schema for all six database roles. aslice dev fixture exercises a local fixture package lifecycle: resolve, install, execute, upgrade, roll back, and remove. Portable commands also normalize and compare versions, resolve dependency ranges, validate artifact manifests and payloads, and pack or inspect bounded unsigned .slice containers. These commands run in native Windows CLion builds as well as Docker. Production package installation and live database commands remain unimplemented. The documents below remain the specification; there is no release to install yet. The project lives at aslice.sh — the documentation will be served at aslice.sh/docs, and the installer will come from get.aslice.sh once a release exists.

Build and try the prototype with Docker Desktop using Linux containers:

docker build -t aslice-prototype .
docker run --rm aslice-prototype --help
docker run --rm aslice-prototype db schema --role client-state
docker run --rm --network none --entrypoint sh aslice-prototype /src/tools/demo-prototype.sh
docker run --rm --entrypoint ctest aslice-prototype --test-dir /build --output-on-failure

The image uses LLVM 22 and libc++, checks formatting and analysis, and runs tests, including loading each emitted schema into SQLite. Linux is a development host for this portable code; these tests do not establish macOS compatibility. See the prototype build guide for local builds and limits.

License

Original project material is licensed under Apache-2.0. Third-party material retains its own license and attribution.

Documents

Scope


Security updates and restart reporting are specified in aslice-upgrade(1) and aslice-needs-restarting(1). A newer eligible source-only update requires disclosed compilation and execution consent. Runtime remediation, farm qualification, and benchmarks remain pending.

History

Document revision history | Date | Changes | |---|---| | 2026-09-27 | Establish typed C++ boundaries, command registry help, and mandatory formatting, analysis, and sanitizer checks; retain fixture wire identities. | | September 2026 | Split source by subsystem; add portable version constraints, manifest/payload verification, and unsigned slice packing and inspection. | | September 2026 | Add the disposable package lifecycle experiment and native CLion/MinGW development dependencies. | | September 2026 | Add the first C++ CLI prototype and Docker build instructions; macOS runtime acceptance remains pending. | | September 2026 | Consolidate revision notes into a collapsible history table; no specification changes. | | September 2026 | prose-fix pass: the second paragraph's tail straightened (one sentence instead of two; the *how* stays in Scope); gems kept deliberately ('These machines still work', 'infrastructure, not a product', 'on a thumb drive'); no content changes. | | September 2026 | grafts: vendor installer scripts are admitted as declared, user-approved, farm-rehearsed grafts rather than never running (owner decision); the vendor-binary and security bullets updated. | | September 2026 | rewritten for readability (second editorial pass); no content changes. | | September 2026 | NOMENCLATURE.md added to the document list; vocabulary pointer added. | | September 2026 | project domain (aslice.sh) linked in Status. | | September 2026 | the declarative-setup file renamed `aslice-machine.toml`, its commands grouped under `aslice machine` (apply / export / import --from-brewfile); top-level `aslice apply` keeps plans and lock files (owner decision). | | September 2026 | TOOLCHAIN.md added to the document list. | | September 2026 | prose rewrite of the introduction and machine-setup overview; no content changes. | | September 2026 | Add the helpers and background services reference to the documentation index; no runtime changes. | | September 2026 | Link the repository structure guidelines and planned C++ layout. | | September 2026 | Simplify README navigation and add docs/README.md with reading paths, a complete document catalog, and supporting resources. | | September 2026 | Specify security-update and restart-reporting interfaces; mark performance targets unmeasured and farm execution disposable. |

Source document