_ _
| |_ ___| |_ _
| | . | | | |
|_|_|___|_|_ |
|___|
git mirror - github.com/owenewans/holy - branch master
file readme.md
<div align="center">

independent linux distribution.
`c` `linux` `distribution`
</div>
The C `holypkg` prototype here belongs to Holy. The separate
[owenewans/holypkg](https://github.com/owenewans/holypkg) project converts
foreign packages for Slackware.
## build
Requires libarchive, libelf, libcurl, OpenSSL and libsolv development files:
```sh
make
make check
make check-root
```
`make install` installs the current `holypkg` prototype, man pages and generated
`llm.txt`. Fixtures also need tar, lz4, zstd, sha256sum, GCC, setfattr, setfacl,
objcopy, as and ld.
`make check` includes the internal libsolv fixture. libsolv development files
must be available through pkg-config; the check fails if they are absent.
`make check-pkgbuild` converts PKGBUILD fixtures into
[holy-recipe(5)](man/holy-recipe.5) manifests and builds the results; it needs
gcc, make and tar.
`make check-root` exercises package mutations only inside disposable target
directories. It does not test a booted system.
`make check-install` exercises [holyinstall(8)](man/holyinstall.8) text menu,
package plan/apply and disposable GPT image preparation. The optional
`INSTALL_TEST=1` ISO fixture partitions a blank guest disk, formats it,
installs packages and boots it through BIOS on i686 or BIOS and UEFI on x86_64.
Its disposable account fixture checks password rejection and authenticated login.
`make check-qemu-gate` runs negative BIOS/TCG fixtures.
`make bootstrap-busybox INPUTS=DIR OUTPUT=DIR` builds a pinned musl-static
BusyBox package. See [holypkg(8)](man/holypkg.8) for inputs and its chroot test.
`make static-deps` and `make static` build the musl-static core from pinned
inputs; `make check-static-core` exercises package operations inside a libc-free chroot.
`make bootstrap-image` builds a test ISO from explicit pinned packages and runs
its QEMU boot probe. See [holy-image(7)](man/holy-image.7) for required inputs
and the current coverage. `make check-qemu ARCH=x86_64 ISO=FILE BOOT_PLAN=SHA256`
reruns a supplied image.
`./holygetiso profiles/holygetiso.example` drives that image path from one
local-input config once the example paths contain built artifacts. See
[holygetiso(8)](man/holygetiso.8) for the supported profile and limits.