tags 632115 confirmed
# technically, this is a regression
severity 632115 important
thanks

On 2011-06-29 19:22, Jakub Wilk wrote:
> Package: lintian
> Version: 2.5.1
> Severity: minor
> 
> $ lintian unbound_1.4.10-1_i386.deb unbound_1.4.10-1_amd64.deb
> [...]
> internal error: cannot open unpacked/etc/init.d/unbound: No such file or
> directory
> internal error: cannot run scripts check on package unbound
> warning: skipping check of binary package unbound
> 
> 
> -- System Information:
> [...]
> 

Hey

This looks very reasonable, I have not actually tested, but the code
strongly suggests this being an issue.  As I understand it, Lintian has
never really supported this, but until the group processing it "happened
to work".
  The problem is that the Lintian Lab only considers type and name of a
package, so two packages with same type and name (regardless of version
and architecture) will be unpacked to the same location.

The issue can appeared after group processing, because the work flow
changed from[2]:

 unpack pkg-amd64
 check pkg-amd64
 auto-clean pkg-amd64
 unpack pkg-i386 (replacing pkg-amd64)
 check pkg-i386
 auto-clean pkg-i386

into:

  unpack pkg-amd64
  unpack pkg-i386 (replacing pkg-amd64)
  check pkg-amd64 (may produce wrong results)
  auto-clean pkg-amd64
  check pkg-i386 (fails horrible)
  auto-clean pkg-i386

(note the ordering of pkg-amd64 vs. pkg-i386 may be wrong here and
there, but it shows the overall picture.)

Obviously, even the old work-flow is problematic, but since most people
only uses a temporary lab and lintian.d.o only checks one architecture
(and we only want one version there), we never really saw this issue.

So to fix this I believe we have to extend the Lab a bit to unpack
$pkg_$version_$arch.$type into $type/$pkg/$version/$arch (or similar)
rather than $type/$pkg (as we do now).
  We still have some cross pkg symlinks lying around, personally I would
like to see the removed if possible.  With the group processing they
should be redundant.

However, the above fix complicates the lintian.d.o setup, where we (as I
understand it) would like a new version of a package to replace the old one.
  I suspect we could solve this by adding attributes to the Lab (at
creation time) that Lintian will respect.  This could be something like:

  * multi-version:  Allow multiple versions of the same pkg in the lab.
    - Without this, Lintian will replace the old version when unpacking
      a new package of same name.  Also pkg_$version1 and pkg_$version2
      cannot be processed in the same run.
    - With this, any number of versions of a package with the same name
      can be present in the Lab.  Lintian will not (by default) remove
      a pkg_$oldversion when unpacking pkg_$newversion.
  * multi-arch: Same as above for architectures rather than versions.

They could default to being on (for new Labs) and we could have the
l.d.o Lab work without multi-version.

~Niels

[1] Determined by name and version of the source package; the packages
in question would be in the same group.

[2] The old work flow is somewhat simplified as some checking is
interleaved with the unpacking.




-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to