Bug#579461: debian-policy: perl: ExtUtils::MakeMaker and PREFIX
Package: debian-policy
Version: 3.8.4.0
Severity: wishlist
The Perl policy currently recommends that packaged modules should use
$(MAKE) install PREFIX=$(CURDIR)/debian/<tmp>/usr
to install the files into a temporary tree.
However, as seen in #545904, overriding PREFIX is only working because
of a Debian-specific patch to ExtUtils::MakeMaker that has been obsolete
since 2002 when upstream added support for DESTDIR.
I would like to see all the packages use DESTDIR so that the patch
could be removed. As a first step, lintian was recently changed to warn
about overriding PREFIX. See #568748 and
http://lintian.debian.org/tags/debian-rules-makemaker-prefix-is-deprecated.html
Since nobody apparently remembered the Perl policy recommendation
(I know I didn't), we now have lintian contradicting the policy.
Proposed wording change:
diff --git a/perl-policy.sgml b/perl-policy.sgml
index 1d26df7..b43b7ad 100644
--- a/perl-policy.sgml
+++ b/perl-policy.sgml
@@ -313,7 +313,7 @@ $(MAKE) OPTIMIZE="-O2 -g -Wall"
</example>
and this one to install the results into the temporary tree:
<example>
-$(MAKE) install PREFIX=$(CURDIR)/debian/<tmp>/usr
+$(MAKE) install DESTDIR=$(CURDIR)/debian/<tmp>
</example><footnote>
<p>Replace <tmp> with the appropriate directory
(nominally just tmp)</p>
For reference, dh_auto_install in debhelper currently does something like
$(MAKE) install DESTDIR=$(CURDIR)/debian/<tmp> PREFIX=/usr
but PREFIX=/usr is the default anyway with INSTALLDIRS=vendor.
--
Niko Tyni ntyni@debian.org
Reply to: