Problem
Building spotify-dl (which depends on librespot 0.6.0) fails on a clean system due to a trait mismatch inside librespot-core’s build script.
Error:
error[E0277]: the trait bound vergen::feature::build::Build: vergen_lib::entries::Add is not satisfied
Rust reports that two different versions of vergen_lib are in the dependency graph.
Dependency Graph
cargo tree shows:
vergen-gitcl 1.0.8
├── vergen 9.1.0
│ └── vergen-lib 9.1.0
└── vergen-lib 0.1.6
So two different vergen-lib versions are compiled simultaneously:
- 0.1.6 (used by vergen-gitcl)
- 9.x (used by vergen)
This causes trait Add from vergen-lib 0.1.6 to differ from the same-named trait in vergen-lib 9.x, breaking the build script.
Why this happens
Cargo resolves vergen to the latest 9.x version, which now depends on vergen-lib 9.x, while vergen-gitcl still depends on vergen-lib 0.1.6.
This creates an incompatible trait implementation boundary.
Environment
Rust stable (1.90+)
Linux x86_64
Clean Cargo cache
Fix Options
One of:
• Pin vergen = "=9.0.6" which still uses vergen-lib 0.1.6
• Upgrade vergen-gitcl to a version compatible with vergen-lib 9.x
• Add explicit dependency unification in librespot-core
Expected
librespot-core should compile without requiring downstream projects to pin internal build dependencies.
This appears to be a dependency resolution break introduced by newer vergen releases.
Problem
Building spotify-dl (which depends on librespot 0.6.0) fails on a clean system due to a trait mismatch inside librespot-core’s build script.
Error:
error[E0277]: the trait bound
vergen::feature::build::Build: vergen_lib::entries::Addis not satisfiedRust reports that two different versions of
vergen_libare in the dependency graph.Dependency Graph
cargo tree shows:
vergen-gitcl 1.0.8
├── vergen 9.1.0
│ └── vergen-lib 9.1.0
└── vergen-lib 0.1.6
So two different
vergen-libversions are compiled simultaneously:This causes trait
Addfromvergen-lib 0.1.6to differ from the same-named trait invergen-lib 9.x, breaking the build script.Why this happens
Cargo resolves
vergento the latest 9.x version, which now depends onvergen-lib 9.x, whilevergen-gitclstill depends onvergen-lib 0.1.6.This creates an incompatible trait implementation boundary.
Environment
Rust stable (1.90+)
Linux x86_64
Clean Cargo cache
Fix Options
One of:
• Pin
vergen = "=9.0.6"which still usesvergen-lib 0.1.6• Upgrade
vergen-gitclto a version compatible withvergen-lib 9.x• Add explicit dependency unification in librespot-core
Expected
librespot-coreshould compile without requiring downstream projects to pin internal build dependencies.This appears to be a dependency resolution break introduced by newer
vergenreleases.