Skip to content

binstall metadata: bin-dir "." yields an empty source path, so cargo binstall cannot install 0.5.0 #458

Closed

Description

@leynos

Problem

cargo binstall mdtablefix@0.5.0 on a clean Linux runner fails before any download with:

bin-dir configuration provided generates empty source path

and then, with --disable-strategies compile, refuses to build from source (as intended by the consumer's no-source-build policy). The cause is the [package.metadata.binstall] override for Linux GNU targets in Cargo.toml:

pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ version }-{ target }.tar.gz"
bin-dir = "."
pkg-fmt = "tgz"

bin-dir = "." yields an empty source path for the binary inside the archive. The v0.5.0 release does publish mdtablefix-0.5.0-<target>.tar.gz archives with .sha256 sidecars, so only the metadata is wrong.

Observed in leynos/netsuke#664 run 33801?????? (build-test on ubicloud-standard-2-ubuntu-2404, 2026-09-03), the first genuinely cold install after the move off a warm cache volume.

Proposal

  1. Set bin-dir to the binary's path inside the archive, e.g. bin-dir = "{ bin }{ binary-ext }" if the archive is flat, or "{ name }-{ version }-{ target }/{ bin }{ binary-ext }" if it nests under a top-level directory (check the v0.5.0 tarball layout).
  2. Add a CI check that runs cargo binstall --dry-run mdtablefix@<version> (or cargo binstall --disable-strategies compile) against the release metadata so a regression fails before release.
  3. Ship it in a 0.5.1 with the same reproducible archive layout.

Until then consumers install from the pinned, checksum-verified tarball directly.

https://claude.ai/code/session_01QrjNTnTwM7FmWXe5KFPMPY

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingmediumRoadmap items to schedule within the current quarter. Clear scope, normal review cycles.testingTest coverage, test infrastructure, and verification tooling work.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions