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

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

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

| 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: