Skip to content

Build failure in librespot-core 0.6.0 due to incompatible vergen-lib versions (E0277) #62

Description

@brchn6

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions