Bug#344269: etch release policy: scripts "must" set "appropriate" #! line? (was: lintian: false executable-not-elf-or-script warning with perl magic header)
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: