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

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



On Sat, 31 May 2014 20:33:48 +0300, Niko Tyni wrote:

> 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.

I've tried this for libcommon-sense-perl now, with the idea taken from dh_perl(1):

#v+
diff --git a/debian/rules b/debian/rules
index f368b5a..2ebf630 100755
--- a/debian/rules
+++ b/debian/rules
@@ -8,6 +8,7 @@ TMP     = $(CURDIR)/debian/$(PACKAGE)
 PERL_CURRENT := $(shell perl -MConfig -e 'print "$$Config{revision}.$$Config{patchlevel}.$$Config{subversion}"')
 PERL_NEXT    := $(shell perl -MConfig -e 'print "$$Config{revision}.$$Config{patchlevel}." . ($$Config{subversion} + 1)')
 ARCHLIB      := $(shell perl -MConfig -e 'print $$Config{vendorarch}')
+PERLAPI      := $(shell perl -MConfig -e 'print ($$Config{debian_abi} || $$Config{version})')

 %:
        dh $@
@@ -19,4 +20,4 @@ override_dh_auto_install:
                $(TMP)/usr/share/man/man3/common::sense.3pm

 override_dh_gencontrol:
-       dh_gencontrol -- -V'sameperl:Depends=perl (>= $(PERL_CURRENT)~), perl (<< $(PERL_NEXT)~)'
+       dh_gencontrol -- -V'sameperl:Depends=perl (>= $(PERL_CURRENT)~), perl (<< $(PERL_NEXT)~), perlapi-$(PERLAPI)'

#v-

Does this look correct?

(For perl 5.18.2 in sid we get as expected:
 Depends: perl (>= 5.18.2~), perl (<< 5.18.3~), perlapi-5.18.2
And for perl 5.20.0:
 Depends: perl (>= 5.20.0~), perl (<< 5.20.1~), perlapi-5.20.0-exp1
(and the files end up in ./usr/lib/x86_64-linux-gnu/perl5/5.20/).
)

Cheers,
gregor

-- 
 .''`.  Homepage: http://info.comodo.priv.at/ - OpenPGP key 0xBB3A68018649AA06
 : :' : Debian GNU/Linux user, admin, and developer  -  http://www.debian.org/
 `. `'  Member of VIBE!AT & SPI, fellow of the Free Software Foundation Europe
   `-   NP: Bob Dylan: Forever Young

Attachment: signature.asc
Description: Digital Signature


Reply to: