Enable aarch64-unknown-linux-musl build target in cargo-dist#250
Conversation
Experimental change that I hope will fix rust-secure-code#249
|
I do agree that supporting aarch64 musl target is worthwhile. However, I'm not keen on enabling a build target that just so happens to work right now but isn't officially supported and therefore could break at any moment. Could you open a PR to cargo-dist adding support for this target? Once it's continually tested in upstream CI and subsequent upstream changes are accounting for its existence, the risk of unpredictable breakage should be eliminated. |
|
As far as I know it is officially supported. I got this idea from axodotdev/cargo-dist#1581. In the code it seems explicit that this is one of the targets that cargo-dist knows about: In the docs section on custom runners it specifically shows a config for The latest It seems fully supported already as far as I can see... |
|
Merged, thanks. But it won't take effect until I cut the next release, which might take a while. |
|
I have published a new release, and aarch64 Linux binaries are now available. |
Enable cargo-dist's built-in cargo-auditable support so that release artifacts embed dependency information (SBOM) directly into the binaries. Downstream tools like `cargo audit bin` can then scan a shipped binary against the exact dependency tree it was built from. Bumps cargo-dist from 0.30.2 to 0.31.0 and regenerates release.yml. Note: this depends on cargo-auditable publishing an aarch64-unknown-linux-musl binary. The fix has been merged upstream (rust-secure-code/cargo-auditable#250) but a release containing that artifact has not yet been cut, so until then the aarch64-musl release job will fail at the install step. Closes #27.
Update to the latest cargo-dist (probably not needed but making sure to stay up to date) and enable cargo-auditable now that it finally publishes all needed architecture/platform combinations of its artifacts. See <rust-secure-code/cargo-auditable#250 (comment)> for the event that finally made this possible.
Enable cargo-dist's built-in cargo-auditable support so that release artifacts embed dependency information (SBOM) directly into the binaries. Downstream tools like `cargo audit bin` can then scan a shipped binary against the exact dependency tree it was built from. Bumps cargo-dist from 0.30.2 to 0.31.0 and regenerates release.yml. Note: this depends on cargo-auditable publishing an aarch64-unknown-linux-musl binary. The fix has been merged upstream (rust-secure-code/cargo-auditable#250) but a release containing that artifact has not yet been cut, so until then the aarch64-musl release job will fail at the install step. Closes #27.
Update to the latest cargo-dist (probably not needed but making sure to stay up to date) and enable cargo-auditable now that it finally publishes all needed architecture/platform combinations of its artifacts. See <rust-secure-code/cargo-auditable#250 (comment)> for the event that finally made this possible.
…166) Per [this issue comment](rust-secure-code/cargo-auditable#250 (comment)), the maintainer of cargo-auditable has published a new release (0.7.5) that includes the missing `aarch64-unknown-linux-musl` artifact, the lack of which was preventing us from enabling cargo-auditable in our dist process. Now that this is available, we can run cargo-auditable against all of our various platform binaries, thereby embedding an SBOM that security scanner tools can read. Closes #27.
It turns out that
cargo-distdoes support theaarch64-unknown-linux-musltarget it just has to be enabled. In theworkspace.metadata.distsection inCargo.tomlI just addedaarch64-unknown-linux-musl:In my fork I then made a new "release" tag and confirmed that it built and published to artifacts the aarch64 musl bits.
You can see the
Releaseworkflow built on my fork here. The specificaarch64-unknown-linux-muslbuild is here.Closes #249