joshtriplett / metadeps

Run pkg-config from declarative dependencies in Cargo.toml
28 stars 28 forks source link

Which tools use metadeps information? #9

Open diwic opened 6 years ago

diwic commented 6 years ago

I have an issue on my crate (dbus) asking why the metadeps dependency is needed. I have a hard time explaining it to them, so I'm considering removing it again.

The readme of this crate doesn't mention any particular tools which actually uses the metadeps information, so what would I exactly lose if I changed from a metadeps to a pkg-config dependency?

joshtriplett commented 6 years ago

At the moment, Debian is in the process of integrating metadeps support into debcargo and integrating debcargo into Debian. We'll need this information to successfully identify what build-time dependencies a package needs, such as making sure the dbus Rust library build-depends on the corresponding C libraries.

The issue with the version of the toml crate is a hard one. Current toml depends on serde, and there are people who don't want the extra dependencies; using old toml makes life slightly more difficult for people who already depend on new toml. That needs fixing.

nox commented 6 years ago

The issue with the version of the toml crate is a hard one.

I disagree with that, just make the bump. I don't understand why we are trying very hard to spare not even 10s of build time for a few, while most of the community will have to use serde at some point anyway.

diwic commented 6 years ago

I don't understand why we are trying very hard to spare not even 10s of build time for a few, while most of the community will have to use serde at some point anyway.

Well, compiling an extra toml-rs isn't much build time either, and I'm not so sure w r t your claim about how often serde is used and not.

diwic commented 6 years ago

But from a broader perspective: I wonder if metadeps should rather go into cargo altogether. Linking to C libraries using pkg-config is common enough for it to be handled by cargo. That way we could avoid the build script altogether, and that would be a big win for compile times.

diwic commented 6 years ago

@nox @joshtriplett @Eijebong

Hmm. If I were to remove the metadeps dependency (i e revert to pkg-config) but keep the key in Cargo.toml, would that be a reasonable compromise? That way debcargo could still do its thing.

Eijebong commented 6 years ago

@diwic :+1:

diwic commented 6 years ago

Ok, libdbus-sys now depends on pkg-config rather than metadeps, but keeps the metadeps key in Cargo.toml.

I'm all for helping Debian integrate Rust stuff easily, but the lack of debcargo documentation in combination with that @joshtriplett hasn't replied further, I can only make a guess about how this stuff works. And that guess is that doing what I'm doing will not regress debcargo functionality.

joshtriplett commented 6 years ago

@diwic Sorry, I missed your previous comment.

As long as the version requirements stay in sync, that should work, though it's unfortunate.