Lykilheim release binaries are built natively on the operating system they
target. The helper script clones a clean copy of the repository, checks out the
requested release tag, installs the pinned Rust toolchain when requested,
builds with cargo build --release --locked, packages the binary, and prints
SHA256 values for the GitHub release notes.
| Platform argument | Run on | Architectures | Package |
|---|---|---|---|
linux |
Linux | native x86_64, aarch64, ARM where Rust supports the host |
.tar.gz |
macos |
macOS | native Intel and Apple Silicon | .tar.gz |
bsd |
FreeBSD, OpenBSD, NetBSD, or DragonFly BSD | native x86_64, aarch64, ARM where Rust supports the host |
.tar.gz |
windows |
Windows | native x86_64, aarch64, ARM where Rust supports the host |
.zip |
The script does native builds only. Do not use it to imply that a Linux host can produce official macOS, Windows, or BSD artifacts. Run it on each target operating system, then copy the SHA256 lines into the release notes.
Native ARM hosts work without special flags. The architecture is included in
the artifact name. For explicit Rust target triples, pass --target, for
example aarch64-unknown-linux-gnu. Cross-target builds still require the
correct linker and system libraries on the build host.
The script clones the repository before building. Release artifacts must be
built from an exact Git tag that matches the Cargo package version, for example
v0.1.0 for package version 0.1.0. Use --allow-untagged only for local
validation builds that will not be uploaded to a release.
Artifact names use the package version, operating-system label, and architecture:
lykilheim-0.1.0-linux-x86_64.tar.gz
lykilheim-0.1.0-macos-x86_64.tar.gz
lykilheim-0.1.0-windows11-x86_64.zip
lykilheim-0.1.0-windowsserver2026-x86_64.zip
Use --os-label when an artifact should name a specific supported operating
system variant. Use lowercase labels such as windows11,
windowsserver2026, or freebsd.
Linux:
python3 scripts/build_release_binary.py linux --ref v0.1.0 --install-prereqsLinux ARM target from a prepared Linux build host:
python3 scripts/build_release_binary.py linux --ref v0.1.0 \
--target aarch64-unknown-linux-gnu --install-prereqsmacOS:
python3 scripts/build_release_binary.py macos --ref v0.1.0 --install-prereqsApple Silicon macOS can run the same command natively. An explicit target such
as aarch64-apple-darwin is only needed when the build host is configured for
that cross-target.
BSD:
python3 scripts/build_release_binary.py bsd --ref v0.1.0 --install-prereqsWindows:
py -3 scripts/build_release_binary.py windows --ref v0.1.0 --install-prereqsWindows 11 label:
py -3 scripts/build_release_binary.py windows --ref v0.1.0 --os-label windows11 --install-prereqsWindows Server 2026 label:
py -3 scripts/build_release_binary.py windows --ref v0.1.0 --os-label windowsserver2026 --install-prereqsgit and Python must already be available so the script can run and clone the
repository. --install-prereqs installs Rust through rustup when Cargo is not
already available; package-manager setup for Git and Python remains an operator
bootstrap step.
Artifacts are written to:
target/release-binaries/
The script prints two release-note lines:
- packaged artifact SHA256;
- raw binary SHA256.
Use the packaged artifact SHA256 for GitHub release assets. Keep the raw binary SHA256 as additional evidence in the versioned release notes.