Bug#1112299: resvg FTCBFS: several reasons
Source: resvg
Version: 0.45-1.2
Severity: serious
Justification: missing dependency
User: debian-cross@lists.debian.org
Usertags: ftcbfs
X-Debbugs-Cc: debian-cross@lists.debian.org,debian-rust@lists.debian.org
Hi,
resvg fails to cross build from source for three distinct reasons. On
the surface, the core crate cannot be found. This is due to a missing
dependency on libstd-rust-dev and missing dependencies usually are RC
bugs. If you fix that, close this bug or lower its severity.
Next up, it uses the build architecture compiler for linking the resvg
executable. I spent some time trying to understand why an asked Fabian
for help, but I wasn't able to figure out the root cause. I confirm,
that dh-rust correctly inserts -C linker=... into the config.toml in
section [target.'cfg(all())'], but the actual linker invocation lacks
both the supplied linker and link-arg. I note that dh-cargo uses a
different section [build], but changing the section to match dh-cargo's
does not fix the problem. Would someone else see what the problem is
here?
Last but not least, resvg uses help2man and that is fundamentally
incompatible with cross building. Your options roughly are:
* Move manual pages to an Arch:all package.
* Generate manual pages at source package construction time.
* Cross build unreproducibly without manual pages.
* Write real manual pages.
* Duplicate all Build-Depends as :native and build the crate natively
as well.
* Write a scrip that exrtacts the HELP variable from main.rs and passes
that to help2man without actually compiling the crate.
None of these are attractive to me. I've done the last one elsewhere,
but it is a workaround at best.
I'm not sure we want to treat this report, but only the first of these
items is a trivially fixable RC bug and the other items lack patches.
Generally, I take issue with the tool duplication of dh-cargo vs
dh-rust. This imposes extra effort onto other teams (such as cross
building). I strongly recommend that you settle on one tool, but then I
also recognize that the duplication does not exist without reason and
each of the approaches probably provides unique advantages that warrant
the duplication to you. For instance, just switching resvg to dh-cargo
does not work as it fails to locate and build the contained crates.
Helmut
Reply to: