[Pkg-rust-maintainers] Bug#945560: debcargo autopkgtests are broken for many packages with multiple features

Daniel Kahn Gillmor dkg at fifthhorseman.net
Tue Nov 26 23:33:53 GMT 2019


Package: debcargo
Version: 2.4.0-1

i'm starting to see a pattern of autopkgtest failures for crates with
multiple features.  rust-bindgen and rust-buffered-reader both show this
kind of failure in their autopkgtest suite.
             
In particular, the autopkgtest logs indicate that:

    "/usr/share/cargo/bin/cargo-auto-test $CRATE $VERSION --all-targets
    --features foo" will fail because no matching package named `bar`
    found

and then conversesly:

   "/usr/share/cargo/bin/cargo-auto-test $CRATE $VERSION --all-targets
   --features bar" will fail because no matching package named `foo`
   found
   
infinity0 says: i have general logic in debcargo to add the right
                dependencies and skip the test if they aren't met

but somehow the features running that tests are looking for external deps that they ought not need.
if it was just one package or upstream, i'd say it was most likely a bug
in that package or upstream. But buffereed-reader and bindgen have
different upstreams, and yet they have the same pattern of autopkgtest
failures -- feature foo fails claiming "missing bar" and feature bar
fails claiming "missing foo".

So i think that cargo-auto-test might be common factor.


infinity0 says: i think this might be cargo bug
                https://github.com/rust-lang/cargo/issues/5133 .
                It is cargo itself that wants the presence of those
                extra dev-dependencies even when they are not actually
                needed.
                
                in which case, perhaps we need to work-around it and
                have debcargo actually generate these extra dependencies
                for now in debian/tests/control
                

                in general, cargo requires the presence of optional
                dependencies in the registry even when they are not
                needed for the current command invocation.  this is ok
                when syncing the full registry from crates.io in your
                $HOME but not in debian where the registry is populated
                by the currently-installed packages
                

I've reported this to buffered-reader upstream over here, and they can't
seem to replicate it: https://gitlab.com/sequoia-pgp/sequoia/issues/386,
but infinity0 suggests that this isn't likely to be their probelm
becauseit only affects distros like debian that don't use a full
registry for its distro rust packages.

infinity0 says: for now you can work-around it in your package by
                setting test_is_broken, feel free to file a debcargo
                issue for the more general workaround "have debcargo
                actually generate these extra dependencies for now in
                debian/tests/control"

So that's what this bug report is :)

   --dkg
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 227 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-rust-maintainers/attachments/20191126/6166d586/attachment.sig>


More information about the Pkg-rust-maintainers mailing list