Package: lintian
Severity: wishlist
X-Debbugs-Cc: [email protected], [email protected]

We're trying to document Build-Profiles in Debian policy #757760 and as
part of that effort, we also document the nocheck build profile. A key
aspect of this profile is that issuing it should not change output
artifacts. There also is a use case for not producing packages
containing tests programs or samples and that is covered by a separate
noinsttest build profile.

How does lintian come into play? A number of packages use nocheck where
noinsttest should be used and there is an easy way to detect this
particular problem. If debian/control matches

    ^Build-Profiles:.*[<! ]nocheck[> ]

then it is varying the packages built with the nocheck build profile and
this is explicitly prohibited by the proposed policy change.

Could you add a check for this? I suggest severity error, because there
is no doubt that this is being wrong.

How many packages are affected?

$ grep '^ .*nocheck' .../deb.debian.org_debian_dists_sid_main_source_Sources
 libhipblas0-tests deb libdevel optional arch=amd64,arm64,ppc64el 
profile=!nocheck
 libhipcub-tests deb libdevel optional arch=amd64,arm64,ppc64el profile=!nocheck
 libhipfft0-tests deb libdevel optional arch=amd64,arm64,ppc64el 
profile=!nocheck
 libhipfft0-tests deb libdevel optional arch=amd64,arm64,ppc64el 
profile=!nocheck
 libhipsolver0-tests deb libdevel optional arch=amd64,arm64,ppc64el 
profile=!nocheck
 libhipsparse1-tests deb libdevel optional arch=amd64,arm64,ppc64el 
profile=!nocheck
 lomiri-tests deb x11 optional arch=any profile=!nocheck
 librccl1-tests deb libdevel optional arch=amd64,arm64,ppc64el profile=!nocheck
 librocblas0-bench deb libdevel optional arch=amd64,arm64,ppc64el 
profile=!nocheck
 librocblas0-tests deb libdevel optional arch=amd64,arm64,ppc64el 
profile=!nocheck
 librocblas0-tests-data deb libdevel optional arch=all profile=!nocheck
 librocblas4-bench deb libdevel optional arch=amd64,arm64 profile=!nocheck
 librocblas4-tests deb libdevel optional arch=amd64,arm64 profile=!nocheck
 librocblas4-tests-data deb libdevel optional arch=all profile=!nocheck
 librocfft0-tests deb libdevel optional arch=amd64,arm64,ppc64el 
profile=!nocheck
 librocfft0-tests deb libdevel optional arch=amd64,arm64,ppc64el 
profile=!nocheck
 librocprim-tests deb libdevel optional arch=amd64,arm64,ppc64el 
profile=!nocheck
 libhiprand1-tests deb libdevel optional arch=amd64,arm64,ppc64el 
profile=!nocheck
 librocrand1-tests deb libdevel optional arch=amd64,arm64,ppc64el 
profile=!nocheck
 librocrand1-tests deb libdevel optional arch=amd64,arm64,ppc64el 
profile=!nocheck
 librocsolver0-bench deb libdevel optional arch=amd64,arm64,ppc64el 
profile=!nocheck
 librocsolver0-tests deb libdevel optional arch=amd64,arm64,ppc64el 
profile=!nocheck
 librocsolver0-bench deb libdevel optional arch=amd64,arm64,ppc64el 
profile=!nocheck
 librocsolver0-tests deb libdevel optional arch=amd64,arm64,ppc64el 
profile=!nocheck
 librocsparse0-tests deb libdevel optional arch=amd64,arm64,ppc64el 
profile=!nocheck
 librocsparse0-tests-data deb libdevel optional arch=all profile=!nocheck
 librocsparse1-tests deb libdevel optional arch=amd64,arm64,ppc64el 
profile=!nocheck
 librocsparse1-tests-data deb libdevel optional arch=all profile=!nocheck
 librocthrust-tests deb libdevel optional arch=amd64,arm64,ppc64el 
profile=!nocheck
$

Proposed metadata:

    Tag: varies-content-with-nocheck
    Severity: error
    Check: ?
    Explanation: The nocheck build profile is used to disable binary
     packages from being built while the profile is expected to not vary
     the resulting artifacts at all. There is a use case for skipping
     the installation of benchmarks, samples and test programs and it is
     served by the noinsttest build profile. If a build dependency is
     required for running build-time tests or installed tests, it should
     be annotated <!nocheck> <!noinsttest>. Then it can only be skipped
     when supplying both profiles at the same time.

Helmut

Reply via email to