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

Bug#750017: perl-policy: All packages using Perl vendorarch directory need a perlapi-* dependency



Package: debian-policy
Version: 3.9.5.0
Tags: patch
X-Debbugs-Cc: debian-perl@lists.debian.org

Following #748380 (perl-policy: @INC changes for multiarch), we need
to add stricter dependencies on perl-base to the few non-binary module
packages currently using /usr/lib/perl5. Otherwise partial upgrades will
be problematic. While we can make perl-base Break the current versions
of such module packages with the old @INC, nothing prevents upgrading
the module packages before the perl core packages.

The affected packages are
 libalien-wxwidgets-perl
 libanyevent-perl
 libcommon-sense-perl
 libgtk2-perl-doc
 libjcode-perl (arch:all oversight, see #749541)
 libpar-packer-perl

Two of these (libcommon-sense-perl and libpar-packer-perl) already have
a binNMU'able dependency on the current perl upstream version.  This is
almost enough, but doesn't cover the future possibility of changing
$Config{vendorarch} without a major Perl version bump. Extending the
perlapi-* requirement seems a more robust solution, as per the attached
patch.
-- 
Niko Tyni   ntyni@debian.org
>From 1ff242b0a7eb5ba39ff18d51a2b2a92596f8b2ea Mon Sep 17 00:00:00 2001
From: Niko Tyni <ntyni@debian.org>
Date: Fri, 30 May 2014 14:10:22 +0300
Subject: [PATCH] All packages using Perl vendorarch directory need a perlapi-*
 dependency

Having $Config{vendorarch} change between Perl major versions (for
multiarch or other reasons) implies that packages using it need a strict
dependency on those versions of perl-base that have a compatible search
path (@INC).

The vast majority of these packages are binary ("XS") modules, where we
already require a dependency on the virtual package perlapi-*, provided
by perl-base. The name of this virtual package will change when the
interface between the Perl interpreter and the modules changes.

If we consider @INC part of that interface, we can use the existing
mechanism also for the few nonbinary modules using $Config{vendorarch}.
This is a new requirement that currently affects six packages in
the archive.
---
 perl-policy.sgml | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/perl-policy.sgml b/perl-policy.sgml
index c23f7c3..e83c8c5 100644
--- a/perl-policy.sgml
+++ b/perl-policy.sgml
@@ -388,13 +388,14 @@ $(MAKE) install DESTDIR=$(CURDIR)/debian/&lt;tmp&gt;
 	</sect1>
 
 	<sect1 id="binary_modules">
-	  <heading>Binary Modules</heading>
+	  <heading>Binary and Other Architecture Dependent Modules</heading>
 	  <p>
 	    Binary modules must specify a dependency on either
 	    <package>perl</package> or <package>perl-base</package> with
 	    a minimum version of the <package>perl</package> package
-	    used to build the module, and must additionally depend on
-	    the expansion of
+	    used to build the module. Additionally, all modules installed
+	    into <tt>$Config{vendorarch}</tt> (binary or otherwise
+	    architecture dependent) must depend on the expansion of
 	    <package>perlapi-$Config{debian_abi}</package> using
 	    the <tt>Config</tt> module. If <tt>$Config{debian_abi}</tt>
 	    is empty or not set, <tt>$Config{version}</tt> must be used.
-- 
2.0.0.rc4


Reply to: