Re: [dpkg] 01/04: debian: Do not insert a perl:Depends for libdpkg-perl
On Sun, 2016-12-18 at 13:45:07 +0100, Sven Joachim wrote:
> On 2016-12-18 11:40 +0000, Guillem Jover wrote:
> > commit f27865fad257cfc29511b01ba810466b40c994a1
> > Author: Guillem Jover <firstname.lastname@example.org>
> > Date: Fri Dec 16 22:39:25 2016 +0100
> > debian: Do not insert a perl:Depends for libdpkg-perl
> > Because tying the modules to a specific interpreter is wrong.
> But now reverse dependencies of libdpkg-perl will have to add the perl
> dependency themselves, even if they only use modules included in
> perl-base. This also seems wrong to me.
Hmm, right, and that was actually one of my arguments when we discussed
this some weeks ago in #debian-dpkg with Helmut and Niels! A summary
of the discussion follows so that it does not get lost:
The initial chain of events was that the Multi-Arch hinter pointed out
that those perl deps needed to be perl:any which made sense to me, I
added the perl:Depends to dpkg-dev (as the one missing it) and then
obviously dpkg-gencontrol complained that the substvar was not being
used in libdpkg-perl, but adding the substvar there too meant that the
dependency ended up being just perl, which makes the hinter still
So these three elements (M-A hinter, debhelper and dpkg-gencontrol)
makes one get into an annoying situation where no component is really
happy out of the box.
Helmut suggested that making lib*-perl packages depend on perl felt
probably wrong as the interpreter implementation could be an embedded
one, which I do agree with in theory. But to which I replied that the
practical problem is what you mentioned above, and that the situation
in perl's case is made worse as it has this added issue with part of
it being essential.
Supposedly a "clean" solution to this would be to make it possible for
lib*-perl packages to depend only on a package that shipped all perl
standard modules (kind of like a language standard library package). The
problem with that is that it might require either getting rid of the
perl-base Essential package, or splitting its modules into yet another
package and readding the versionless perl-modules. But even then that
has never been allowed by the perl policy.
Niels commented that this was what had been done for Java.
(This is from my logs, and I don't think I've misrepresented anything,
but both are CCed just in case I have. :)
Then I mentioned that I'd note this down to discuss with the perl
> Pretty much all of the lib*-perl packages seem to depend on perl, and I
> think you should talk to the Debian Perl maintainers if you want to
> change that.
… seems I completely failed to do, because I didn't check my notes, and
went only by flaky memory! O:)
And yes, the current situation with the lib*-perl packages is probably
also because the perl policy mandates that.
In any case, thanks for the notice! I think I'll just hardcode a
perl:any on libdpkg-perl for now, and queue a discussion with the perl
maintainers for later.