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

Re: Bug#906901: debian-policy: Perl script shebang requirement is disturbing and inconsistent with rest of policy

Dominic Hargreaves <dom@earth.li> writes:

> Clearly it should not be a must at this point given the deviation:
> though it still looks to me like a must ever since it was added to the
> perl policy, so if it is changed it should be changed in both places.

Hi all,

I'm looking for seconds for this patch to relax the current requirement
back to a should.  After that, I think the next step would be to introduce
automatic fixing of the #! line to debhelper, since that seems relatively
uncontroversial, and then we can reconsider this later after that's had a
chance to propagate through the archive.

--- a/perl-policy.xml
+++ b/perl-policy.xml
@@ -533,7 +533,7 @@ $(MAKE) OPTIMIZE="-O2 -g -Wall"</screen>
       <title>Script Magic</title>
-        All packaged perl programs must start with
+        All packaged perl programs should start with
         <literal>#!/usr/bin/perl</literal> and may append such flags as
         are required.
diff --git a/policy/ch-files.rst b/policy/ch-files.rst
index f31a3b4..bc87573 100644
--- a/policy/ch-files.rst
+++ b/policy/ch-files.rst
@@ -186,7 +186,7 @@ All command scripts, including the package maintainer scripts inside the
 package and used by ``dpkg``, should have a ``#!`` line naming the shell
 to be used to interpret them.
-In the case of Perl scripts this must be ``#!/usr/bin/perl``.
+In the case of Perl scripts this should be ``#!/usr/bin/perl``.
 When scripts are installed into a directory in the system PATH, the
 script name should not include an extension such as ``.sh`` or ``.pl``

> My personal view is that the rule is the correct one though. Installing
> a different perl for some application specific purpose is not uncommon -
> some people choose to not use the system perl at all when they are
> deploying a perl application - and they should be free to do that by
> putting a different perl in the path. That doesn't mean that they
> suddenly have to worry about parts of the packaged Debian system
> breaking.  I certainly couldn't name every part of Debian that I rely on
> that's written in perl!

Yes, this is my feeling as well.  It's all well and good to say that if
local administrators install their own Perl and things break, they get to
keep both pieces, but this seems unnecessarily fragile.  There are various
ways in which some other Perl could be added earlier in the PATH without
the administrator having any intention whatsoever to supplant system Perl
with it.  Consider, for instance, some local application written using
bleed Perl installed in some non-standard path, some other program that
with the best of intentions prepends the location of that application to
the PATH, and some program that this application happens to run without
even necessarily knowing it's written in Perl.  It seems better to ensure
that this sort of pattern just works.

Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>

Reply to: