Package: lintian
Version: 2.129.0
Severity: normal
Hi,
The following packages fail testing on UDD's lintian runner.
source | version | min
----------------------+-------------+-----
0xffff | 0.9-1 | 6
aravis | 0.8.34-1 | 8
formiko | 1.4.3-2.1 | 7
gimp-data-extras | 1:2.0.4-0.2 | 13
glabels | 3.4.1-6 | 10
gobby | 0.6.0-3 | 8
qps | 2.12.0-1 | 7
vala-panel | 24.05-3 | 86
vokoscreen-ng | 4.4.0-1 | 8
zeroinstall-injector | 2.18-2.2 | 40
(10 rows)
Sometimes it's the source package itself, sometimes it's a binary
package:
0xffff_0.9-1_loong64.deb
aravis-tools_0.8.34-1+b1_loong64.deb
formiko_1.4.3-2.1.dsc
gimp-data-extras_2.0.4-0.2_all.deb
glabels_3.4.1-6_amd64.deb
gobby_0.6.0-3_amd64.deb
qps_2.12.0-1_amd64.deb
vala-panel-common_24.05-3_all.deb
vokoscreen-ng_4.4.0-1_amd64.deb
0install-core_2.18-2.2_amd64.deb
The lintian code in question is:
my ($output, $status) = capture_merged {
system('appstreamcli', 'validate-tree', '--format=yaml',
'--no-net', $basedir);
};
if ($output =~ m/Passed: no/) {
my @yaml = YAML::XS::Load($output);
die
unless @yaml;
$self->hint('appstream-metadata-validation-failed',
q{Problems reported by "appstreamcli validate-tree".});
}
The yaml generated by appstreamcli is seen as invalid by other looks
like yq:
wcurl
https://ftp.debian.org/debian/pool/main/0/0xffff/0xffff_0.9-1_loong64.deb
mkdir x
dpkg-deb -x 0xffff_0.9-1_loong64.deb x/
cd x
appstreamcli validate-tree --format=yaml --no-net . | yq .
gives:
yq: Error running jq: ParserError: while parsing a flow mapping
in "<stdin>", line 15, column 5
did not find expected ',' or '}'
in "<stdin>", line 20, column 24.
The problematic part is:
{
tag: cid-has-number-prefix,
severity: info,
component: 0xffff.udev,
line: 3,
hint: 0xffff.udev: 0xffff �~F~R _0xffff,
explanation: The component ID contains a segment starting with a number.
Starting a segment of the
reverse-DNS ID with a number is strongly discouraged, to keep
interoperability with other tools
such as D-Bus. Ideally, prefix these segments with an underscore.
},
line 20 is:
hint: 0xffff.udev: 0xffff �~F~R _0xffff,
Since nothing is done with @yaml, I would suggest just removing the YAML
parsing, and simply trusting the regexp check on 'Passed: no'.
Lucas