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

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: