Bug#784574: perl: relax the perl-modules -> perl-base dependency

Niko Tyni ntyni at debian.org
Wed May 6 18:52:06 UTC 2015


Package: perl
Version: 5.20.2-4

When we broke the circular dependency between perl and perl-modules,
we added new versioned dependencies to fix partial upgrade problems:

  * Make perl-modules Break older versions of perl. (Closes: #779433)
  * Make perl-modules Depend on a matching perl-base. (Closes: #779455)

The corresponding commits were

 http://anonscm.debian.org/cgit/perl/perl.git/commit/?id=59673604bc9f44505ac3d5cdd56a4a96641939ac

perl-modules Breaks
- perl (<< 5.20.0~),
+ perl (<< ${Upstream-Version}~),

 http://anonscm.debian.org/cgit/perl/perl.git/commit/?id=4027c14a4591d7f23cfbd90ee2bb917f32ca7e61

perl-modules Depends
-Depends: perl-base (>= 5.20.1-3)
+Depends: perl-base (>= ${source:Version})

The latter caused problems in various places, where new arch:all packages
are made available and/or the old arch:all packages vanish before the
corresponding arch:any ones are built and available.  See #784137 and 
https://lists.debian.org/debian-68k/2015/03/msg00007.html

It looks like dak was fixed in 2009, see #246992 and
 http://twerner.blogspot.fi/2009/11/dak-dominate-will-dodadoda-debian.html
so I'm not sure what caused the problem with jessie-pu (#784137), but
debian-ports doesn't run the real dak so it's clearly affected.

So we should probably reconsider the dependencies, and possibly
even fix this for stable, at least if jessie-pu can't be fixed.

I'm currently thinking that the biggest issue we must guard against is
the symlinks in perl-base:

 lrwxrwxrwx 1 root root 6 Feb 27 20:14 /usr/share/perl/5.20 -> 5.20.2
 lrwxrwxrwx 1 root root 6 Feb 27 20:14 /usr/lib/x86_64-linux-gnu/perl/5.20 -> 5.20.2

so perl-base hould actually have
 Breaks: perl-modules (<< ${Upstream-Version}~), perl (<< ${Upstream-Version}~)
because the symlinks change with each upstream version so that the old
files in perl-modules and perl aren't available anymore.

This could replace the tight perl-modules -> perl-base dependency AFAICS.

The other way of partial upgrades where perl and/or perl-modules are
upgraded before perl-base still needs something like
 Depends: perl-base (>= ${Upstream-Version}~)
in both of them AFAICS.

Eyeballs welcome; this still needs double-checking and testing.
I'm thinking of bundling it with the static libperl linking change
(#781476) and uploading to experimental first.
-- 
Niko Tyni   ntyni at debian.org




More information about the Perl-maintainers mailing list