You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
chore(release): v0.9.1 — ship .deb and .rpm installers (#90)
* chore(release): v0.9.1 — ship .deb and .rpm installers
Ship native Linux installers instead of raw tar.gz tarballs. The musl
static binary is now packaged as both .deb (Debian/Ubuntu) and .rpm
(RHEL/Fedora/Rocky/Alma), each signed with Sigstore cosign and carrying
a SLSA provenance attestation from the GitHub Actions builder.
- crates/pki-client/Cargo.toml: add [package.metadata.deb] and
[package.metadata.generate-rpm] with license-file, extended
description, and doc-file packaging.
- .github/workflows/release.yml: build musl binary, install cargo-deb
and cargo-generate-rpm, produce .deb + .rpm, smoke-test both with
dpkg-deb/rpm, attest + cosign sign all installer artifacts.
- install.sh: detect host package format (dpkg vs rpm) and install the
matching installer via the native package manager (dpkg/dnf/yum).
- README.md: rewrite Install section to document apt/dnf install flow
and per-installer cosign verification.
- Bump workspace version 0.9.0 -> 0.9.1 (packaging-only, no code
changes — binary is byte-identical to v0.9.0).
Co-Authored-By: Claude <noreply@anthropic.com>
* ci: build interop binary with musl to fix cross-runner GLIBC flake
The interop build job built a glibc-dynamic binary on ubuntu3 (GLIBC
2.39) and uploaded it as an artifact. The downstream TLS Probe and
Certificate Round-Trip jobs then downloaded that binary and ran it on
Rocky Linux runners with older glibc — producing intermittent
\`GLIBC_2.38 not found\` failures (issue #68).
Root-cause fix: build the interop artifact statically against musl so
it runs on any downstream runner regardless of the host libc version.
This removes the need to keep admin-merging past the flake.
- Target x86_64-unknown-linux-musl for the interop build.
- Install musl-tools if missing.
- Verify static linking and fail hard if the binary isn't static.
- Upload from target/x86_64-unknown-linux-musl/release/pki.
Co-Authored-By: Claude <noreply@anthropic.com>
* ci: fix static-linking check for newer ldd output format
Newer ldd (glibc 2.39+) prints 'statically linked' instead of the
older 'not a dynamic executable' string. The old grep pattern only
matched the old wording, so the verify step failed on a binary that
was actually static. Match either string.
Co-Authored-By: Claude <noreply@anthropic.com>
* ci: scope cargo cache per-glibc to prevent cross-runner binary poisoning
The shared cache key let glibc-2.39 ubuntu3 builds poison glibc-2.34
Rocky runs — target/debug/deps/*-test binaries cached on ubuntu3 fail
on Rocky with "GLIBC_2.39 not found". The aws-lc-sys build-script
cleanup only caught a subset of the blast radius.
Detect the runner's glibc via ldd and include it in both the exact
and restore keys so caches never cross glibc boundaries.
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+18Lines changed: 18 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
## [0.9.1] - 2026-04-19
11
+
12
+
### Changed
13
+
14
+
-**Release artifacts are now native Linux installers (`.deb` + `.rpm`)** instead of raw `tar.gz` tarballs. Installers ship the statically-linked musl binary, register with the host package manager (`dpkg`/`rpm`), and install `pki` to `/usr/bin/pki`. `apt remove pki-client` / `dnf remove pki-client` now work cleanly.
15
+
-`install.sh` detects the host package format (`dpkg` or `rpm`) and installs the matching installer via the native package manager.
16
+
-`README.md` install section rewritten to document the new `.deb`/`.rpm` flow.
17
+
-`.github/workflows/release.yml` rewritten to build both installers via `cargo-deb` and `cargo-generate-rpm`, smoke-test them with `dpkg-deb`/`rpm -qip`, and sign each package artifact with Sigstore cosign + SLSA provenance.
18
+
19
+
### Added
20
+
21
+
-`[package.metadata.deb]` and `[package.metadata.generate-rpm]` sections on `crates/pki-client/Cargo.toml` — drive installer generation with full license-file, extended-description, and doc-file packaging.
22
+
23
+
### Notes
24
+
25
+
- v0.9.1 is a **packaging-only** release on top of v0.9.0. No code changes; the binary inside the installer is byte-identical to the `v0.9.0` musl build.
26
+
- If you prefer a raw static binary, extract it from the installer: `dpkg-deb -x pki-client_0.9.1_amd64.deb out/` or `rpm2cpio pki-client-0.9.1-1.x86_64.rpm | cpio -idmv`.
0 commit comments