Proof of concept mechanical port of ircnet/ircd to Rust as part of a bit about C being insecure for network services
0

Configure Feed

Select the types of activity you want to include in your feed.

chore(scripts/release): emit per-target tarballs alongside deb/rpm

Each triple now also gets leveva-<ver>-<triple>.tar.gz carrying the
same payload as the package asset tables in leveva/Cargo.toml (binary,
systemd unit, default config + MOTD, example config, license), for
platforms without dpkg/rpm. Collected into var/dist/ with the packages.

Assisted-by: Claude Fable 5 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>

+25 -2
+25 -2
scripts/generate-release-assets.sh
··· 1 1 #!/usr/bin/env bash 2 2 # 3 - # generate-release-assets.sh — build leveva for x86_64 + aarch64 and emit 4 - # .deb and .rpm packages for each architecture. 3 + # generate-release-assets.sh — build leveva for every release architecture and 4 + # emit .deb and .rpm packages plus a plain tarball for each. 5 5 # 6 6 # Cross-compilation is handled by cargo-zigbuild (zig as the linker/sysroot), 7 7 # so no per-arch C toolchain is required. Both targets are static musl builds. ··· 17 17 # Outputs (relative to the workspace root): 18 18 # target/<triple>/debian/leveva_<ver>_<arch>.deb 19 19 # target/<triple>/generate-rpm/leveva-<ver>-1.<arch>.rpm 20 + # target/<triple>/tarball/leveva-<ver>-<triple>.tar.gz 20 21 # and a copy of every artifact collected under var/dist/leveva-<ver>/, where 21 22 # <ver> is leveva's package version from leveva/Cargo.toml. 23 + # 24 + # The tarball carries the same payload as the packages (binary, systemd unit, 25 + # default config + MOTD, example config, license) in a flat leveva-<ver>-<triple>/ 26 + # directory, for platforms without dpkg/rpm. 22 27 set -euo pipefail 23 28 24 29 # Resolve the workspace root (parent of this script's directory) so the script ··· 94 99 echo ">> cargo generate-rpm" 95 100 cargo generate-rpm -p leveva --target "${triple}" 96 101 102 + # Tarball with the same payload as the .deb/.rpm asset tables in 103 + # leveva/Cargo.toml (binary, unit file, config, MOTD, example, license), 104 + # flattened into one versioned directory. 105 + echo ">> tarball" 106 + TARBALL_NAME="leveva-${VERSION}-${triple}" 107 + STAGE_DIR="target/${triple}/tarball/${TARBALL_NAME}" 108 + rm -rf "${STAGE_DIR}" 109 + mkdir -p "${STAGE_DIR}" 110 + cp "target/${triple}/release/leveva" "${STAGE_DIR}/leveva" 111 + cp leveva/dist/leveva.service "${STAGE_DIR}/leveva.service" 112 + cp leveva/dist/ircd.kdl "${STAGE_DIR}/ircd.kdl" 113 + cp leveva/dist/leveva.motd "${STAGE_DIR}/leveva.motd" 114 + cp leveva/examples/ircd.kdl "${STAGE_DIR}/ircd.kdl.example" 115 + cp LICENSE "${STAGE_DIR}/LICENSE" 116 + tar -czf "target/${triple}/tarball/${TARBALL_NAME}.tar.gz" \ 117 + -C "target/${triple}/tarball" "${TARBALL_NAME}" 118 + 97 119 # Collect the artifacts into one place for convenience. 98 120 cp -v "target/${triple}/debian/"*.deb "${OUT_DIR}/" 99 121 cp -v "target/${triple}/generate-rpm/"*.rpm "${OUT_DIR}/" 122 + cp -v "target/${triple}/tarball/"*.tar.gz "${OUT_DIR}/" 100 123 done 101 124 102 125 echo