Repository navigation
feat(packaging): Phase 2: Zero-Friction Distribution & Operations (Static Musl, Multi-Init, Container, Installer, Cargo Binstall) - #164
Merged
Conversation
… and init detection
vxfemboy
temporarily deployed
to
benchmark-approval
October 22, 2026 05:16 — with
GitHub Actions
Inactive
vxfemboy
temporarily deployed
to
benchmark-approval
October 22, 2026 05:16 — with
GitHub Actions
Inactive
vxfemboy
temporarily deployed
to
benchmark-approval
October 22, 2026 05:16 — with
GitHub Actions
Inactive
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #147 (Phase 2: Zero-Friction Distribution & Operations).
This PR delivers the complete production distribution, operational, and packaging suite for
yip. It eliminates installation friction for systems engineers, self-hosters, and enterprise operators by providing statically linked musl binaries forx86_64andaarch64, a hardened multi-init service suite (systemd,OpenRC,runit), a multi-stage production container image, a turnkey POSIX 1-line installer with cryptographic SHA-256 validation,cargo-binstallintegration, and automated CI release pipelines.Architectural Deliverables
1. Hardened Multi-Init Service Suite (
contrib/)contrib/systemd/):contrib/systemd/yipd.service: Configured with modern Linux sandboxing (ProtectSystem=strict,ProtectHome=true,NoNewPrivileges=true,PrivateTmp=true,ProtectControlGroups=true,RuntimeDirectory=yipd),LimitMEMLOCK=infinity(preventing UMEM page lockingENOMEMfailures inio_uringandAF_XDP),DeviceAllow=/dev/net/tun rw, and capabilitiesCAP_NET_ADMIN CAP_NET_RAW CAP_BPF CAP_IPC_LOCK.contrib/systemd/yip-rendezvous.service: Hardened server unit withCAP_NET_BIND_SERVICE./run/yipd/yip.sockacrossexample.configandbin/yipd/src/control.rsto operate cleanly underProtectSystem=strictandRuntimeDirectory=yipd.contrib/openrc/):contrib/openrc/yipdandcontrib/openrc/yip-rendezvous: Production OpenRC runscripts withsupervisor="supervise-daemon", capability bounding,rc_ulimit="-l unlimited", pre-start directory preparation, and configuration existence validation.contrib/runit/):contrib/runit/yipd/andcontrib/runit/yip-rendezvous/: Standardrunscripts and dedicatedsvlogd -ttlogging scripts.2. Multi-Stage Production Container (
Dockerfile)builder: Alpine Rust environment with musl toolchain and BoringSSL/bindgen dependencies.yipd: Minimal (~20MB) Alpine runtime withca-certificatesandlibstdc++,/etc/yipand/run/yipdvolume directories, entrypoint/usr/local/bin/yipd.yip-rendezvous: Minimal (~18MB) runtime withca-certificatesandlibstdc++, entrypoint/usr/local/bin/yip-rendezvous..dockerignoreconfigured to keep build context clean and minimal.3. Turnkey POSIX Installer (
install.sh) & Sandbox Test Suite (tests/test_install_sh.sh)install.sh:/bin/shcompliant.sudo/doas), with graceful unprivileged fallback defaulting to${HOME}/.local/binand${XDG_CONFIG_HOME:-$HOME/.config}/yipwhen running without root privileges.x86_64/aarch64musl).sha256sum -c(fallbackshasum -a 256 -c) against release manifests; aborts on checksum mismatch.LOCAL_TARBALLandLOCAL_SHA256SUMS.yipd,yip-ca,yip-rendezvous) with 0755 permissions and example configuration seeding.systemd,openrc,runit,none).tests/test_install_sh.sh:bash,sh, anddash.4.
cargo-binstallPackage Metadata[package.metadata.cargo-binstall]tobin/yipd/Cargo.toml,bin/yip-ca/Cargo.toml, andbin/yip-rendezvous/Cargo.toml.5. Static Musl Libc Portability
crates/yip-device: Target-specificIoctlReqconditional alias (c_inton musl,c_ulongon glibc) for ioctl requests.crates/yip-io: Addedempty_msghdr()andempty_mmsghdr()struct initializers to safely initialize structs with private padding fields without violating#![forbid(unsafe_code)]/#![deny(unsafe_op_in_unsafe_fn)], alongsideMsgFlagsandCmsgLentype aliases.static-pie linkedbinaries forx86_64-unknown-linux-muslwith zero dynamic interpreter headers.6. Automated Multi-Arch Release Pipelines (
.github/workflows/&.forgejo/workflows/).github/workflows/release.ymland.forgejo/workflows/release.ymltriggered on git tags (v*) and manual dispatch.x86_64-unknown-linux-muslandaarch64-unknown-linux-muslusing hermetic musl toolchains (musl-gccandmusl-g++).yip-${TAG}-${TARGET}.tar.gz) containing binaries,example.config,LICENSE,README.md, andcontrib/.SHA256SUMSon releases.7. Documentation & Quick Start
README.mdwith prominent 1-line installation snippets (curl -fsSL https://.../install.sh | sh,cargo binstall yipd,docker run) above compilation from source.ROADMAP.mdmoving feat(packaging): Phase 2: Zero-Friction Distribution & Operations (Static Musl, Systemd, Packaging) #147 to## Done.CHANGELOG.mdunder## [Unreleased].Verification
cargo fmt --check: Passed cleanly.cargo clippy --workspace --all-targets -- -D warnings: Passed with zero warnings.python3 crates/yip-bench/generate-graphs.py --check: Passed cleanly.cargo test --workspace: All 422 workspace unit and integration tests passed.sh -n install.sh&tests/test_install_sh.sh: All 6 test scenarios passed onshandbash.