I am developing a Rust application and I want to provide packages for Debian. I have something similar to this configuration under debian/controls

Source: com.github.yourname.yourrepo
Section: x11
Priority: extra
Maintainer: Someone
Build-Depends: cargo,
               debhelper (>= 9),
Standards-Version: 3.9.3

Package: com.github.yourname.yourrepo
Architecture: any
Depends: ${misc:Depends}, ${shlibs:Depends}
Description: SomeApp
Some app developed in Rust

But when I am trying to build it with debuild it complains that I don't have cargo. However, if I type cargo to the terminal it is present in the system. I guess the reason is that I didn't install the package cargo. And I don't want to force people install it either if they have cargo already. Is there a way to enforce having a dependency that is not Debian package?


No, there is no way to enforce a build- (or other) dependency which isn’t a Debian binary package. All the dependency, conflict etc. fields declare relationships between packages.

You can cheat by using equivs to create fake packages, if you want to use your own cargo instead of the packaged one, but then you won’t be able to check that your package builds correctly for other Debian users.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.