What does "Malformed Build-Depends / broken syntax" from debcheck mean?
Hello,
[I sent this mail a week ago on debian-mentors@, but didn't receive any
answer so far. Since this question relates to cross-build, maybe I will
be more lucky here. Please keep me in recipients, I'm not subscribed to
this list.]
I maintain the package shaderc. In the last upload, I fixed the
packaging to make the package cross-buildable. Among the required
changes, I had to add `python3:any` to Build-Depends.
During build, shaderc uses a Python script to generate some source
files. Python is only required during build time, it is not a runtime
dependency.
With just `python3` in Build-Depends, if I cross-build from amd64 to
arm64 (sbuild --host=arm64), I get the following error during the
installation of the dependencies:
Setting up python3.13-minimal:arm64 (3.13.7-1) ...
/var/lib/dpkg/info/python3.13-minimal.postinst: 51: /usr/bin/python3.13:
Exec format error
dpkg: error processing package python3.13-minimal:arm64 (--configure):
installed python3.13-minimal:arm64 package post-installation script
subprocess returned error exit status 126
As I understand it, it installed the arm64 version of python, which of
course can't be executed on amd64.
I don't remember where I found it, but it turns out `python3:any`
(adding `:any`) in Build-Depends fixes the problem, by installing any
working python3 package, which is what I need in this case.
Ok, cross-build works, Salsa CI is happy, I upload.
However, since this upload, in my qa.debian.org page
(https://qa.debian.org/developer.php?login=phil.swart@gmx.fr), I see in
the column "Debcheck" that something is wrong for shaderc. Indeed, it
complains
(https://qa.debian.org/debcheck.php?dist=unstable&package=shaderc) that
"Package declares a build time dependency on 'python3:any' which is
broken Syntax.".
This raises several questions:
- If it's a broken syntax, what is the correct syntax? I browsed (maybe
too quickly) several pages on the wiki about cross-building, I didn't
find an answer.
- What is this "Debcheck" tool? I found some source in
https://salsa.debian.org/qa/qa/-/tree/master/data/debcheck, and it seems
to be packaged in dose-distcheck, but I failed to run dose-debcheck
locally. Moreover, according to several bugs opened against
qa.debian.org, the tool doesn't seem actively maintained anymore
(https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=918714).
- Shouldn't Lintian report this kind of problem? `lintian -EviIL
+pedantic` reports no problem related to this matter.
- Is there somewhere a reference about the specifiers (like `:any`)
which can be appended to a package in the field Build-Depends? The
syntax `package:foo` is not mentioned in
https://www.debian.org/doc/debian-policy/ch-relationships.html.
Thanks,
Philippe.
Reply to: