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

Re: Perl packages that don't build-depend on Perl



tl;dr: any objections from the list to a mass bug filing of 81 pkg-perl
packages at severity 'minor' ?

On Tue, Feb 27, 2018 at 06:18:09PM +0000, Marga Manterola wrote:
 
> While doing a mass rebuild of packages, I noticed that some of the perl
> packages don't build-depend on perl.  Packages build successfully because
> perl is a dependency of dpkg-dev, which is part of build-essential, and
> also because dak has marked perl as "Build-Essential: yes".

Right. My thinking is that these missing build dependencies are minor
latent bugs that are probably never going to hurt in practice, but it's
still worth fixing them. Theoretically the dpkg-dev implementation might
change to another language in the future, exposing those latent bugs.

In the IRC discussion there were other arguments too. The core question
seems to be whether transitive dependencies of build essential packages
are considered "independently" build essential. If they are, we should
possibly rather be leaving perl out of the build dependencies everywhere.

It's all a bit theoretical and probably doesn't really matter much
either way, which is of course why nobody's noticed these until now.

FWIW, the relevant policy paragraph is

  It is not necessary to explicitly specify build-time relationships on
  a minimal set of packages that are always needed to compile, link and
  put in a Debian package a standard “Hello World!” program written in C
  or C++. The required packages are called *build-essential*, and an
  informational list can be found in "/usr/share/doc/build-essential/list"
  (which is contained in the "build-essential" package).

The traditional interpretation of this is that the build-essential package

 Depends: libc6-dev | libc-dev, gcc (>= 4:7.2), g++ (>= 4:7.2), make, dpkg-dev (>= 1.17.11)

perl is indeed "just" a dependency of dpkg-dev.

[The Build-Essential:yes flag on the perl binary package in the archive is
 added by the archive software somehow, and is apparently obsolete, see

 https://lists.debian.org/debian-devel/2011/03/msg00978.html
 https://bugs.debian.org/619700 ]

> However, when trying to script some build order for packages, this means
> that perl needs to be special cased.  This is an issue because if the perl
> version changes, the binaries and the provides are different and all the
> other packages need to be rebuilt after perl.

I don't quite get why perl is a special case here, but never mind that
as it's sort of a side track IMO. I think these are bugs regardless of
how you noticed them :)

> I asked this on #debian-perl and Niko checked that only 81 of pkg-perl's
> 3504 packages are missing the build-dependency.

For the record, this was achieved with

 # grep-dctrl -FMaintainer pkg-perl Sources | grep-dctrl -c -v -FBuild-Depends,Build-Depends-Indep -w perl

and filtering further I see that only 18 of those are arch-dep packages
that might be relevant to your case AIUI.

> So, would it be possible to add this build-dep to those 81 packages?

I'm fine with a mass bug filing, probably with severity minor, and/or a
(possibly pkg-perl specific?) lintian check or whatever but I'm not sure
if we have a consensus or not. So any objections? :)
-- 
Niko Tyni   ntyni@debian.org


Reply to: