In Lintian::Collect::Source, use centralized version parser.
Centralizes most version parsing so that it takes place for source packages. Lintian can determine a package's nativeness only from source packages. That information is required to parse all version components, even for simple versions. More details are in the email excerpt below. Does not currently check if changelogs in binary packages are the same as in the source package. That was mentioned in an unquoted part of the email (and originally suggested by pabs) but would be difficult to test using standard tools. That condition belongs more appropriately into the test suite for dpkg-buildpackage. For native packages, the method ->repacked now always returns false. Native packages have no upstream source and cannot be repacked. The 'native' method was not removed from Lintian::Collect::Binary yet. Some checks such as 'fields' still depend on it. First, those subchecks have to be transferred into source-only sections in their respective checks. This commit implements most proposed actions from: https://lists.debian.org/debian-lint-maint/2019/07/msg00141.html which is restated here: Detecting native binary packages [1] does not work nearly as well as for source packages [2]. In the Lintian test suite, we see discrepancies in the same *.changes files [3]. For that reason, I will soon propose to move all tags that depend on the detection from 'binary' to 'source'. In practice, that means moving many tags from the check 'changelog-file' to 'source-changelog'. (The check 'fields' may be split up.) The reclassification of tags as source vs. binary will cause ripple effects, such as the adjustment of expected tags in the test suite and potentially the greater ecosystem via overrides.
Loading