Package: lintian Version: 2.5.48 Severity: wishlist Hi,
Using the Build-Depends-Arch header doesn't make sense if there are no Architecture:any packages in debian/control. Conversely, using Build-Depends-Indep doesn't make any sense if there are no Architecture:all packages. The situation where a maintainer would miss this can easily arise. Picture the situation where the maintainer removes an Architecture:any package from a debian/control that otherwise only has Architecture:all packages. At this point, there should be no Build-Depends-Arch header, because no architecture-specific binary packages are being built. But this problem might easily go undetected by the maintainer as even if they use sbuild or pbuilder, they might run full builds which in turn will also install the B-D-A dependencies and thus let the build pass. If now a source-only upload is done, it will fail on the Arch:all autobuilders. This exact thing just happened to me. It would be nice if lintian could detect this kind of problem before the upload is done and building the package fails. Unfortunately, implementing this *properly* might become a bit tricky. Imagine this situation: Source: foo Build-Depends-Indep: blub <stage1> Package: foo Architecture: all Build-Profiles: <!stage1> This package build depends on "blub" but only if the "stage1" profile is active. But with the stage1 profile active, no Arch:all packages are being built. Thus, lintian should throw a warning here about an apparently wrong B-D-I header - it is of no use what-so-ever. A similar example can be constructed with architecture restrictions instead of build profiles. Thanks! cheers, josch