Re: What does "Malformed Build-Depends / broken syntax" from debcheck mean?
Hi Philippe,
On Sun, Oct 12, 2025 at 07:29:49PM +0200, Philippe SWARTVAGHER wrote:
> [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.]
Thanks for your effort on cross building and for reaching out. Your
question is well researched and has reached an appropriate 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.
The addition of :any is the right course of action here. You might have
used :native (which expresses that the build architecture must be used
rather than being preferred), but that would not have fixed debcheck.
> 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.
The syntax is ok. It is the debcheck tool that does not yet understand
it. More packages face this problem:
https://qa.debian.org/debcheck.php?dist=sid&list=main-only-malformed%2dbuild%2ddepends&arch=ANY
> - 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).
I concur here. The copyright notice mentions Christoph (Cced).
> - Shouldn't Lintian report this kind of problem? `lintian -EviIL +pedantic`
> reports no problem related to this matter.
The debcheck tool tries to report archive-wide issues that arise from
the interaction of several packages. Lintian cannot do this. The syntax
check is a byproduct and also covered by lintian.
> - 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.
I fear this is very slow work in progress.
https://bugs.debian.org/749826
Helmut
Reply to: