[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#513663: [general] need infrastructure to check related packages



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



Reply to: