#1031377 UDD/lintian: Needs to run lintian on all binaries generated from same source

#1031377#5
Date:
2023-02-16 00:17:38 UTC
From:
To:
Hi!

There are some lintian tags (I know at least of
lacks-unversioned-link-to-shared-library), which require multiple
packages to be linted together for them to be emitted. In this case
libfooN and libfoo-dev for example. I'm getting unused-override tags
as these are not triggering (an example would be libbsd).

I guess the lintian runner used by UDD is executing lintian for each
.deb independently, because I assume it has no access to the .changes
files? If so, to avoid these false positives, it would need to get the
list of binary packages for a source and lint all of them with the same
lintian call.

Thanks,
Guillem

#1031377#10
Date:
2023-02-16 03:18:30 UTC
From:
To:
The usual way of running lintian after a build checks all binary
packages and the source at the same time. I think UDD should do that.

#1031377#15
Date:
2023-02-16 14:05:24 UTC
From:
To:
(Adding lintian-maint@debian.org to Cc for input)
architecture, and lintian's output does not include the architecture for
binary packages, so I just get something like:
C: libbsd0: control-tarball-compression-format xz
C: libbsd0: control-tarball-compression-format xz
C: libbsd0: control-tarball-compression-format xz
C: libbsd0: control-tarball-compression-format xz
C: libbsd0: control-tarball-compression-format xz
C: libbsd0: control-tarball-compression-format xz
C: libbsd0: control-tarball-compression-format xz
C: libbsd0: control-tarball-compression-format xz
C: libbsd0: control-tarball-compression-format xz
with no way of linking emmitted tags to a specific architecture...

What I could do is:
  for each arch in the packages's architectures (except all)
     run lintian on source + architecture packages + architecture 'all' packages

... but that would result in a much longer runtime...


What could work is:
  run lintian on source
  for each arch in the packages's architectures (except all)
     run lintian on architecture packages + architecture 'all' packages

But would that solve all issues?

The best way out is probably to have lintian optionally suffix packages
names with architecture, and then do a single lintian run with all
binaries for all architectures...

Lucas

#1031377#22
Date:
2023-09-28 05:40:52 UTC
From:
To:
I discovered that it does not solve all issues.

For example src:rust-bat builds bat. When you run lintian against the
dsc and the deb it emits missing-notice-file-for-apache-license for the
source package, but when you run it against only the dsc or only the
deb it does not emit that tag. That is because the test checks that the
NOTICE file from the source package is missing from the binary package.

https://lists.debian.org/msgid-search/8062de5e3a1afbe988ce3d5453d211089242ba2a.camel@debian.org