Package: lintian Version: 2.2.0 Severity: wishlist Lintian currently checks source packages and binary packages in isolation, except for a few fragile hacks. However, overwhelmingly Lintian is run in one of two ways: on a *.changes file, from which the source package and all binary packages built from it are available, or across the entire archive.
There have been multiple requests that require cross-package checks within the packages built from the same source package, either between binary packages or between the binary package and the source package. Examples include: #120323 -- avoid false positives on man pages provided by dependencies #217023 -- check for dangling symlinks #513544 -- avoid false positive if upstream ships an empty changelog When processing a *.changes file, I think it would be reasonable to set up the lab for all of the packages being processed before running any check scripts. The check scripts could then rely on being able to peek at the labs for all packages generated from the same source package. lintian.d.o is harder. Currently, all source packages are checked first and then left unpacked to level one. Then, all binary packages are checked. This means the source package is always available while checking the binary packages, but all the binary packages may not be available. One option would be to unpack all binary packages to level one before doing any checks, but this requires redoing the unpack work again to get a level two unpack when actually checking it, making an archive-wide run much slower. The best option is probably to add additional smarts to Lintian's processing and chase references between the packages so that, before processing a binary package, Lintian ensures that all binary packages from the same source package are also unpacked in the lab. I think the best way to do that would be to more closely simulate the processing order Lintian uses when processing *.changes files. Rather than processing all binary packages one at a time, process them in groups by source package, unpacking them all, running all checks, and then resetting the lab to level one. This bug will track the infrastructure work required to implement this so that other bugs can block on this bug. I don't currently have time to do this implementation. If anyone else wants to tackle it, it would be a great project. -- System Information: Debian Release: 5.0 APT prefers testing APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental') Architecture: i386 (i686) Kernel: Linux 2.6.26-1-686 (SMP w/1 CPU core) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages lintian depends on: ii binutils 2.18.1~cvs20080103-7 The GNU assembler, linker and bina ii diffstat 1.45-2 produces graph of changes introduc ii dpkg-dev 1.14.24 Debian package development tools ii file 4.26-1 Determines file type using "magic" ii gettext 0.17-4 GNU Internationalization utilities ii intltool-debian 0.35.0+20060710.1 Help i18n of RFC822 compliant conf ii libdigest-sha-perl 5.47-1 Perl extension for SHA-1/224/256/3 ii libipc-run-perl 0.80-2 Perl module for running processes ii libparse-debianchan 1.1.1-2 parse Debian changelogs and output ii libtimedate-perl 1.1600-9 Time and date functions for Perl ii liburi-perl 1.35.dfsg.1-1 Manipulates and accesses URI strin ii man-db 2.5.2-3 on-line manual pager ii perl [libdigest-sha 5.10.0-19 Larry Wall's Practical Extraction lintian recommends no packages. Versions of packages lintian suggests: pn binutils-multiarch <none> (no description available) ii libtext-template-perl 1.44-1.2 Text::Template perl module ii man-db 2.5.2-3 on-line manual pager -- no debconf information -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

