[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: