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

Re: Rationale behind script-not-executable lintian warning

Ben Finney <ben@benfinney.id.au> wrote:

> On 23-Dec-2005, Frank Küster wrote:
>> Ben Finney <ben@benfinney.id.au> wrote:
>> > A shebang line is more than documentation: it is a strong
>> > indication that the script will be executable from the command
>> > line. To have that expectation not be matched by the file's
>> > permission mode is a recipe for confusion.
>> The fact that the script is not in the path isn't enough for you
>> here?
> There are many executables, that I can invoke from the command line by
> typing their explicit location, that are not in the default executable
> path on a Debian system.

That's correct.

>> And don't you think that anyone who knows that a shebang lines
>> indicates executability from the command line would easily solve the
>> problem of a "permission denied"?
> The confusion I refer to is not "how do I fix this?" but rather "why
> is there a mismatch, and what is the intended behaviour?" That there
> is a mismatch at all is the confusion.

Okay, so the rationale for the lintian warning would be:

"If a script starts with `#!/path/to/interpreter', this indicates that
it is intended to be directly executed, therefore it should have have
the executable bits set."

However, for me, this sounds like a reason not to make the script
executable in *my*case*.  Most of the scripts in question in the
tetex-base package are from ConTeXt, a software also distributed on its
own, but for Debian integrated into teTeX by the teTeX upstream

It might well be that teTeX's upstream has deliberately decided not to
make these scripts executable - for example because he wants his
software to work with "./configure; make; make install", whereas calling
the scripts directly would require to set some environment variables
(which on teTeX are passed to the scripts by the programs that
indirectly call them).  

An other possible rationale for upstream's decision is that the scripts
are originally meant to be in the path by the ConTeXt authors, but for
the integration into teTeX it was necessary to create a wrapper script
(in fact such a script does exist).  In this case the scripts are no
longer meant to be executable in teTeX.

I think Debian should stick to (teTeX's) upstream's decision, which will
simply work.  On the other hand, I see no reason to remove the shebang
lines (of a couple of scripts).

Does this sound sensible, would it warrant a lintian override?  Or what
do you think I should do?

Regards, Frank
Frank Küster
Inst. f. Biochemie der Univ. Zürich
Debian Developer

Reply to: