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

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



Thank you for the background on Python!

Stuart Prescott <stuart@debian.org> writes:

> Sidenote: Getting rid of env in shebangs is only part of the story to
> making packages robust against accidental breakage. Putting an
> incompatible interpreter into PATH (say, /usr/local/bin/{python,perl})
> ends up breaking maintainer scripts that call the interpreter without
> specifying the full path in the same way as a dysfunctional
> /usr/local/bin/rm would break maintainer scripts that call 'rm'. The
> differences are that people seldom compile their own coreutils and the
> interpreter is also reliant upon a compatible module tree and that is
> not necessarily available to the locally installed interpreter. (Python
> people are strongly encouraged not to use /usr/local/bin/ python for
> precisely this reason, using, say, virtualenv instead.)

Yeah, this is one of the points that I'm struggling with: I feel like our
stance with Perl (and Python) and our stance with maintainer scripts is
inconsistent.  We require maintainer scripts to support PATH
interposition, but take the opposite stance for interpreters, and then
that causes these sorts of problems.

Personally, I've never liked command interposition in maintainer scripts,
although I admit that it lets one do some things as a local sysadmin that
are otherwise quite irritating to do.  But apart from one's preferences on
both, it feels like we have a foundational inconsistency here.

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


Reply to: