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

Bug#748380: marked as done (perl-policy: @INC changes for multiarch)



Your message dated Wed, 17 Sep 2014 19:03:26 +0000
with message-id <E1XUKVi-0001s1-1u@franck.debian.org>
and subject line Bug#748380: fixed in debian-policy 3.9.6.0
has caused the Debian Bug report #748380,
regarding perl-policy: @INC changes for multiarch
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
748380: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=748380
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: debian-policy
Version: 3.9.5.0
X-Debbugs-Cc: debian-perl@lists.debian.org

As discussed in the thread at
 https://lists.debian.org/debian-perl/2014/05/msg00035.html

we would like to change the perl search path (@INC) to include the
multiarch triplet, to pave way for future Multi-Arch:same perl module
packages. We're still discussing whether to try to do this for the
upcoming Perl 5.20 or postpone it after jessie, but at the moment I think
it's clear that policy shouldn't recommend hardcoding /usr/lib/perl5 in
Debian packaging anymore.

I'm attaching a patch set for this. The first two changes are minor
cleanups that I discovered while drafting this. At least the first
is clearly just an editorial change and shouldn't need seconds.
I'm not quite sure about the process with second one. Apologies
if I should have filed separate bugs about those.

The third one is the meat of this and changes the documented site,
vendor, and core include paths to be dynamically resolved via the Config
module. The vendor paths have the biggest effect on other packages:
the site directories in /usr/local are in the realm of the local
administrator, and I can't think of anything outside the perl source
package that should need to use the core path.

The fourth patch is only a draft and is included for completeness.
It should not go in the policy before the multiarch path changes are
in unstable.

I've phrased the recommendations as 'should', because changing them to
hard requirements would currently break at least 64 packages. When those 
are fixed, I think we should raise the requirements to 'must' level.

I'm copying the debian-perl list for input. Naturally, patches and other
suggestions for improvement are welcome. If there's anything controversial
about the wording I'm proposing, please let me know.
-- 
Niko Tyni   ntyni@debian.org
>From ec6a223e9b667b4605fb8340db17b357749cdf12 Mon Sep 17 00:00:00 2001
From: Niko Tyni <ntyni@debian.org>
Date: Thu, 15 May 2014 23:35:11 +0300
Subject: [PATCH 1/4] Document that @INC has /usr/lib/perl/5.18, not
 /usr/lib/perl/5.18.2

Since at least 5.8.4-8 (Debian sarge release), the Perl search
path for the core modules has used the major version (5.18)
instead of the full one (5.18.2).
---
 perl-policy.sgml | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/perl-policy.sgml b/perl-policy.sgml
index 626c514..abe04d9 100644
--- a/perl-policy.sgml
+++ b/perl-policy.sgml
@@ -168,9 +168,11 @@
 	      <p>
 		Modules included in the core Perl distribution.
 	        <example>
-/usr/lib/perl/<var>version</var>
-/usr/share/perl/<var>version</var>
+/usr/lib/perl/<var>shortversion</var>
+/usr/share/perl/<var>shortversion</var>
 	        </example>
+		Where <var>shortversion</var> indicates the current Perl major
+		version (for example <tt>5.18</tt>).
 	      </p>
 	    </item>
 	    <tag><var>site</var> (old)</tag>
-- 
2.0.0.rc2

>From 334756fa12ff637889df2ebdc49db878f1e0da6d Mon Sep 17 00:00:00 2001
From: Niko Tyni <ntyni@debian.org>
Date: Fri, 16 May 2014 19:40:35 +0300
Subject: [PATCH 2/4] Move the footnote about the Config module to the first
 reference

The new Config reference was introduced in cc34dcc0 but the
footnote wasn't moved accordingly.
---
 perl-policy.sgml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/perl-policy.sgml b/perl-policy.sgml
index abe04d9..54e97d3 100644
--- a/perl-policy.sgml
+++ b/perl-policy.sgml
@@ -96,7 +96,8 @@
 	  <package>perlapi-<var>abiname</var></package> for all released
 	  package versions it is compatible with. The choice of
 	  <var>abiname</var> is arbitrary, but if it differs from
-	  <tt>$Config{version}</tt>, it must be specified in
+	  <tt>$Config{version}</tt><footnote>see the
+	  <tt>Config</tt> module</footnote>, it must be specified in
 	  <tt>$Config{debian_abi}</tt>.
 	</p>
       </sect>
@@ -149,8 +150,7 @@
 /usr/local/share/perl/<var>version</var>
 		</example>
 		Where <var>version</var> indicates the current Perl
-		version (<tt>$Config{version}</tt><footnote>see the
-		<tt>Config</tt> module</footnote>).
+		version (<tt>$Config{version}</tt>).
 	      </p>
 	    </item>
 	    <tag><var>vendor</var></tag>
-- 
2.0.0.rc2

>From 04beab9a142597b57baae68c1888be2ec1977db4 Mon Sep 17 00:00:00 2001
From: Niko Tyni <ntyni@debian.org>
Date: Thu, 15 May 2014 23:35:52 +0300
Subject: [PATCH 3/4] Recommend $Config{vendorarch} et al. over hardcoding @INC
 locations

The most pressing need for this is for including the multiarch
triplet in vendorarch, but it is also a logical continuation for the
$Config{debian_abi} concept introduced earlier.

If we ever have to make a binary incompatible change without a major
version bump, we'll probably have to change @INC too, at least for
locally installed binary modules (sitearch).
---
 perl-policy.sgml | 41 +++++++++++++++++++++++++++++++++++------
 1 file changed, 35 insertions(+), 6 deletions(-)

diff --git a/perl-policy.sgml b/perl-policy.sgml
index 54e97d3..c23f7c3 100644
--- a/perl-policy.sgml
+++ b/perl-policy.sgml
@@ -146,21 +146,42 @@
 		Modules installed by the local administrator for the
 		current version of Perl (see <ref id="site">).
 	        <example>
-/usr/local/lib/perl/<var>version</var>
-/usr/local/share/perl/<var>version</var>
+$Config{sitearch}  (currently /usr/local/lib/perl/<var>version</var>)
+$Config{sitelib}   (currently /usr/local/share/perl/<var>version</var>)
 		</example>
 		Where <var>version</var> indicates the current Perl
 		version (<tt>$Config{version}</tt>).
 	      </p>
+	      <p>
+		These locations, particularly <tt>$Config{sitearch}</tt>,
+		may change if the binary interface between the
+		Perl interpreter and compiled modules has to be
+		changed in an incompatible way without a change in
+		<var>version</var>. While this will only be done as a
+		last resort, packages should use <tt>$Config{sitelib}</tt>
+		and <tt>$Config{sitearch}</tt>, not hardcode the current
+		locations.<footnote>Build systems based on
+		<tt>ExtUtils::MakeMaker</tt> and <tt>Module::Build</tt>
+		do this automatically.</footnote>
+	      <p>
 	    </item>
 	    <tag><var>vendor</var></tag>
 	    <item>
 	      <p>
 		Packaged modules (see <ref id="module_packages">).
 	        <example>
-/usr/lib/perl5
-/usr/share/perl5
+$Config{vendorarch} (currently /usr/lib/perl5)
+$Config{vendorlib}  (currently /usr/share/perl5)
 	        </example>
+		These locations, particularly
+		<tt>$Config{vendorarch}</tt>, may change if
+		necessary<footnote>For example, to include
+		the multiarch triplet</footnote>.  Packages
+		should use <tt>$Config{vendorlib}</tt> and
+		<tt>$Config{vendorarch}</tt>, not hardcode the current
+		locations.<footnote>Build systems based on
+		<tt>ExtUtils::MakeMaker</tt> and <tt>Module::Build</tt>
+		do this automatically.</footnote>
 	      </p>
 	    </item>
 	    <tag><var>core</var></tag>
@@ -168,12 +189,20 @@
 	      <p>
 		Modules included in the core Perl distribution.
 	        <example>
-/usr/lib/perl/<var>shortversion</var>
-/usr/share/perl/<var>shortversion</var>
+$Config{archlib} (currently /usr/lib/perl/<var>shortversion</var>)
+$Config{privlib} (currently /usr/share/perl/<var>shortversion</var>)
 	        </example>
 		Where <var>shortversion</var> indicates the current Perl major
 		version (for example <tt>5.18</tt>).
 	      </p>
+	      <p>
+		These locations should be considered internal to the <package>
+		perl</package> source package. If necessary, packages should use
+		<tt>$Config{archlib}</tt> and <tt>$Config{privlib}</tt> instead of
+		hardcoding the current locations.<footnote>Build systems based on
+		<tt>ExtUtils::MakeMaker</tt> and <tt>Module::Build</tt>
+		do this automatically.</footnote>
+	      </p>
 	    </item>
 	    <tag><var>site</var> (old)</tag>
 	    <item>
-- 
2.0.0.rc2

>From 1d21f15a7b42b02393dfa451297a246807dd55ad Mon Sep 17 00:00:00 2001
From: Niko Tyni <ntyni@debian.org>
Date: Fri, 16 May 2014 00:13:35 +0300
Subject: [PATCH 4/4] Change vendorarch to include the multiarch triplet

This is currently only a draft. The change will be
implemented in a future perl major version upgrade.
---
 perl-policy.sgml | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/perl-policy.sgml b/perl-policy.sgml
index c23f7c3..63fd730 100644
--- a/perl-policy.sgml
+++ b/perl-policy.sgml
@@ -170,14 +170,18 @@ $Config{sitelib}   (currently /usr/local/share/perl/<var>version</var>)
 	      <p>
 		Packaged modules (see <ref id="module_packages">).
 	        <example>
-$Config{vendorarch} (currently /usr/lib/perl5)
+$Config{vendorarch} (currently /usr/lib/<var>triplet</var>/perl5)
 $Config{vendorlib}  (currently /usr/share/perl5)
 	        </example>
+		Where <var>triplet</var> is the multiarch triplet for
+		the system architecture.
+	      </p>
+	      <p>
 		These locations, particularly
 		<tt>$Config{vendorarch}</tt>, may change if
-		necessary<footnote>For example, to include
-		the multiarch triplet</footnote>.  Packages
-		should use <tt>$Config{vendorlib}</tt> and
+		necessary<footnote>The last change was made
+		to include the multiarch triplet</footnote>.
+		Packages should use <tt>$Config{vendorlib}</tt> and
 		<tt>$Config{vendorarch}</tt>, not hardcode the current
 		locations.<footnote>Build systems based on
 		<tt>ExtUtils::MakeMaker</tt> and <tt>Module::Build</tt>
-- 
2.0.0.rc2


--- End Message ---
--- Begin Message ---
Source: debian-policy
Source-Version: 3.9.6.0

We believe that the bug you reported is fixed in the latest version of
debian-policy, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 748380@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Bill Allombert <ballombe@debian.org> (supplier of updated debian-policy package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Wed, 17 Sep 2014 20:03:20 +0200
Source: debian-policy
Binary: debian-policy
Architecture: source all
Version: 3.9.6.0
Distribution: unstable
Urgency: low
Maintainer: Debian Policy List <debian-policy@lists.debian.org>
Changed-By: Bill Allombert <ballombe@debian.org>
Description:
 debian-policy - Debian Policy Manual and related documents
Closes: 491547 555980 588497 593611 613143 731810 737730 740100 741304 742756 748380 748479 748480 750017 753353 753999 754876
Changes:
 debian-policy (3.9.6.0) unstable; urgency=low
 .
   [ Bill Allombert ]
   * upgrading-checklist.sgml: remove spurious 'details in' leftover from
     the HTML transition.  Closes: #740100. Thanks Jakub Wilk.
   * debian/control:
     - Build-Depends emacs-nox|emacs instead of emacs23. Closes: #753999
     Thanks Gabriele Giacone and Rob Browning.
   * Packaging: refreshed the names of the Policy Editors.
   * Policy: [11.5.1] Web servers: Fix use of metasyntactic variables and
     applications Closes: #737730. Thanks Olivier Berger.
   * Policy: [5.6.21] Files: Fix typo "by" -> be. Closes: #753353.
     Thanks Benedikt Wildenhain.
   * Policy: Remove reference to DEHS (dead service)
     Wording: David Prévot <taffit@debian.org>
     Seconded: Julian Gilbey <julian@d-and-j.net>
     Seconded: Charles Plessy <plessy@debian.org>
     Closes: #731810
   * Policy: Relax /usr/share FHS requirement for directories with mixed content.
     Wording: Joey Hess <joeyh@debian.org>
     Seconded: Russ Allbery <rra@debian.org>
     Seconded: Julien Cristau <jcristau@debian.org>
     Seconded: Jakub Wilk <jwilk@debian.org>
     Seconded: Michael Biebl <biebl@debian.org>
     Closes: #741304
   * Perl Policy: @INC has /usr/lib/perl/5.18, not /usr/lib/perl/5.18.2
     Wording: Niko Tyni <ntyni@debian.org>
     Seconded: Russ Allbery <rra@debian.org>
     Seconded: Bill Allombert <ballombe@debian.org>
     Closes: #748480
   * Perl Policy: Explain %Config earlier
     Wording: Niko Tyni <ntyni@debian.org>
     Seconded: Russ Allbery <rra@debian.org>
     Seconded: Damyan Ivanov <dmn@debian.org>
     Closes: #748479
   * Perl Policy: @INC changes for multiarch
     Wording: Niko Tyni <ntyni@debian.org>
     Seconded: Russ Allbery <rra@debian.org>
     Seconded: Damyan Ivanov <dmn@debian.org>
     Closes: #748380
   * Perl Policy: Packages using Perl vendorarch directory need a perlapi-*
     dependency
     Wording: Niko Tyni <ntyni@debian.org>
     Seconded: Russ Allbery <rra@debian.org>
     Seconded: Gregor Herrmann <gregoa@debian.org>
     Seconded: Axel Beckert <abe@debian.org>
     Closes: #750017
   * Policy: Grant an FHS exception for the multiarch headers directories
     Wording: Bill Allombert <ballombe@debian.org>
     Seconded: Jonathan Nieder <jrnieder@gmail.com>
     Seconded: Russ Allbery <rra@debian.org>
     Closes: #742756
   * Policy: Discourage statically linked binaries
     Wording: Russ Allbery <rra@debian.org>
     Seconded: Bill Allombert <ballombe@debian.org>
     Seconded: Jonathan Nieder <jrnieder@gmail.com>
     Closes: #555980
   * Policy: Clarify whose signature should go in debian/changelog (4.4)
     Wording: Russ Allbery <rra@debian.org>
     Seconded: Andrew McMillan <andrew@morphoss.com>
     Seconded: Gregor Herrmann <gregoa@debian.org>
     Closes: #593611
   * Policy: Change default web document root to /var/www/html
     Wording: Bill Allombert <ballombe@debian.org>
     Seconded: Arno Töll <arno@debian.org>
     Seconded: Matthias Urlichs <matthias@urlichs.de>
     Closes: #491547
   * virtual-package-names-list: Update java runtime list
     Wording: Emmanuel Bourg <ebourg@apache.org>
     Seconded: Tony Mancill <tmancill@debian.org>
     Seconded: Bill Allombert <ballombe@debian.org>
     Closes: #754876
   * virtual-package-names-list: Add httpd-wsgi
     Wording: Bill Allombert <ballombe@debian.org>
     Seconded: Jonas Smedegaard <dr@jones.dk>
     Seconded: Piotr Ożarowski <piotr@debian.org>
     Closes: #588497
   [ Jonathan Nieder ]
   * Policy: Drop FHS requirement that /usr/local/lib<qual> exist when /lib<qual>
     or /usr/lib<qual> does.
     Wording: Tollef Fog Heen <tfheen@err.no>
     Seconded: Bill Allombert <ballombe@debian.org>
     Seconded: Jonathan Nieder <jrnieder@gmail.com>
     Seconded: Russ Allbery <rra@debian.org>
     Closes: #613143
Checksums-Sha1:
 9644b65bdfc4f6646c8ee47baa68d70c26cfa90c 1882 debian-policy_3.9.6.0.dsc
 ca697872752c360df38367f6559c18356e655e14 697004 debian-policy_3.9.6.0.tar.xz
 ac5f71390d771e6848c87d78a22073aa2ab0408b 1881920 debian-policy_3.9.6.0_all.deb
Checksums-Sha256:
 85ff30718d07ab8327a4a5326f07ce61fc9587ef1032f85f4bbe8ec97d105288 1882 debian-policy_3.9.6.0.dsc
 b3dcc2e094857ed3f3ca9e9637f9c00d4569300faadfe44a73b93a83b7a3af00 697004 debian-policy_3.9.6.0.tar.xz
 c4bc87f4db9ad4a9bb54d6106f72810f49a4b706e6d3acb97cfcbdfbf0a36ce8 1881920 debian-policy_3.9.6.0_all.deb
Files:
 f14d60e7b3c035a83f50d450b87eb79a 1881920 doc optional debian-policy_3.9.6.0_all.deb
 4cdfe4a697a2a45188f8bf04a647cd92 1882 doc optional debian-policy_3.9.6.0.dsc
 bedf33cab89ed4f626d1b06c5bfae5b0 697004 doc optional debian-policy_3.9.6.0.tar.xz

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQIcBAEBAgAGBQJUGc+/AAoJEI8OfCtFIuOHhZMP/08nv8TdYLnEXw98P/tA2zXy
JsnzPF5sXpmnNe0eSpNG2rqbuwYMt/GqO68owJE6M/PdsneVaPYaKAvwPBFOfwhJ
h4tCFK9zz4ma0a+ewS0qLO+KwlP+oyPPwIJ8nSbNsZZdxb6I6iF5RfKy43tUPvp1
rc1utNY9WvZ8CuszY40uKHuKNixUbCp9dm5TrSF5YtG6t6gVJencMAi9Bm1SarXt
SJlegTj6pMdlsp0QDzqgX+FAQnQZZwgFhBhv1O51vThul0qsKo61D6C4KuQ7uSjB
/hieq7JHZAu9Rz4P2qkx5Dln2WyDMPovxGiXIBjHSj3kmOs8vZHViT8N4aO5HVeO
MEVtl1utNRY+QsVUqxGUd1OqdQfvgv3uC0vXvR60JLxn87YhPgq1fbvNuApKo/p7
MG4NjVN8GX0k07Mg48A56JA8y5ImO0N3kXTAxGgKVnlpCjSzfvK7J+Q5gypeOYa8
l4QO23QPl1Qxpvf9jZ9lgTzWPhezXKYAvg4MYWPtLPvA5WDnq6WqZJOQObWN/gxu
GdQvo8FqcqOeQig0Dkp0IGbaxMpMNDLCtjezfYy3GsN+ri4WbOQz8Axc1K8+QEYM
nuE2TbVNxllFeLqyRghYLHPxWXsYb24DaVqseSwwr3fpc6Vvgfmck/si8VYvGJtd
hxapdBvsofEqozqnvNGz
=j5FQ
-----END PGP SIGNATURE-----

--- End Message ---

Reply to: