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

Reply via email to