retitle 880689 dh-cargo: Should not install top-level .pc directory (generated 
by Debian packaging)
tags 880689 + confirmed
thanks

On Sat, Nov 04, 2017 at 11:51:00AM +0100, Jonas Smedegaard wrote:
> Quoting Josh Triplett (2017-11-04 10:10:52)
> > On Fri, Nov 03, 2017 at 10:00:03PM +0100, Jonas Smedegaard wrote:
> >> dh-cargo installs into library packages everything in source package 
> >> except directories .git and debian.
> >>
> >> That is too much: .gitignore files or .travis.yml files make no sense 
> >> to install, and neither does .pc directory.
> >
> > Very intentional and not a bug. I discussed this with the Debian Rust 
> > team when I was first creating dh-cargo, and the intent is for the 
> > code in /usr/share/cargo/registry to *exactly* match the source as 
> > shipped in crates.io, with no omissions. The directory registry 
> > mechanism is intended for providing sources that substitute for the 
> > upstream sources.
> > 
> > (Among other things, I *have* encountered packages before that 
> > actually *used* .gitignore as part of a package build.)
> > 
> > That said, upstream crates should not be shipping .pc directories, and 
> > if that happens, we should be reporting that upstream to get fixed.
> 
> Thanks for the clarification of intent.
> 
> I challenge your conclusion that this is not a bug, however: From 
> looking at its code, it seems to me dh-cargo currently does _not_ 
> install only "the source as shipped in crates,io".
> 
> Apparently it installs everything lying around in the source package at 
> the time dh-cargo gets triggered, except root directories ".git" and 
> "debian".
> 
> The ".pc" directory, created during build by a packaging helper tool, 
> should certainly not be installed.

In general, I think anything generated by packaging helpers belongs in
debian/ rather than in the top-level source directory. But
unfortunately, I do understand that some packaging helpers create a
top-level .pc directory. Excluding that (only at the top level) seems
fine, for the same reason as excluding a top-level .git directory.

> I believe that from your own rule, stuff generated during build by 
> upstream build tools - typically but not necessarily listed in upstream 
> .gitignore - should hot be installed either.

None of those should get generated during the course of assembling the
Debian package.

If we do end up making an opt-in mechanism for library crates where we
can build and run the test suite from what's in the .crate, then we
should clean before installing the sources.

Reply via email to