etch release policy: scripts "must" set "appropriate" #! line? (was: lintian: false executable-not-elf-or-script warning with perl magic header)
- To: Debian Release Management <debian-release@lists.debian.org>
- Cc: 344269@bugs.debian.org, "Piotr Engelking" <inkerman42@gmail.com>
- Subject: etch release policy: scripts "must" set "appropriate" #! line? (was: lintian: false executable-not-elf-or-script warning with perl magic header)
- From: Frank Küster <frank@kuesterei.ch>
- Date: Wed, 19 Apr 2006 11:20:23 +0200
- Message-id: <861wvtly5k.fsf_-_@alhambra.kuesterei.ch>
- In-reply-to: <814371d60604190031iec3b56fp8c32ba69cdf9e434@mail.gmail.com> (Piotr Engelking's message of "Wed, 19 Apr 2006 09:31:52 +0200")
- References: <868xuebs4q.fsf@alhambra.kuesterei.ch> <814371d60604190031iec3b56fp8c32ba69cdf9e434@mail.gmail.com>
Hi release team,
this discussion is about scripts with a "magic header" instead of a
standard shebang line. It turned out that some magic headers, e.g. the
one suggested in perldoc perlrun, only work if there is *no* shebang
line.
I think the Etch RC policy should be clarified or changed, see below.
"Piotr Engelking" <inkerman42@gmail.com> wrote:
> I believe that this bug has been resolved incorrectly. Section 10.4 of the
> Debian Policy says:
>
> "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 should be #!/usr/bin/perl."
Notice it uses "should", not "must".
> Moreover, section 5.g of the Etch RC Policy says:
>
> "Scripts must include the appropriate #! line, and set executable."
>
>
> It seems that tetex-base has a release-critical bug, and that lintian was
> right to complain about it.
>From the reading of the Etch RC Policy you are right - the RMs raised
the requirement from a should to a must. On the other hand, they
introduced the nice word "appropriate".
Release Managers, do you think that scripts with a Perl magic header
like
,----
| eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q'
| if 0;
`----
are inacceptable?
Of course I would never write a maintainer or otherwise Debian-specific
script like this; but upstream has a reason for this "trying to be as
portable as possible", and I'd rather not patch all instances of magic
headers, as long as they work.
TIA, Frank
--
Frank Küster
Single Molecule Spectroscopy, Protein Folding @ Inst. f. Biochemie, Univ. Zürich
Debian Developer (teTeX)
Reply to: