Bug#683495: Mass-filing bug against use of '/usr/bin/env perl' shebang line
usertags 683495 normative discussion
- from section 10.4, "command scripts (...) should have a #! line naming the
shell to be used". The next paragraph gives the example for Perl:
"this should be #!/usr/bin/perl" ;
- from section 11.9, "Perl programs and modules should follow the current Perl
- from the Perl policy's section 5.1, "packaged perl programs must start with
- This may be misleading as somebody reading quickly may not realise that the
"must" requirements in the Perl policy are mitigated to "should"
requirements by the Policy's section 11.9.
This can be clarified, however, the same comment could be made about other "must"
points of the Perl policy.
Here are possible resolutions of this bug report.
- Close, given that there is no internal contradiction within the Debian Policy
nor the Perl policy.
- Reduce the Perl policy's "must" to a "should". A "should" still disallows
the use of /usr/bin/env with no justification. It is also in line with the
fact that some packaged modules sometimes slip in Debian with scripts started
with /usr/bin/env, without this being a serious bug requiring immediate action.
- Change the Debian Policy's section 11.9 to require that the Perl policy "must"
be followed. I think that this would require to correct the packages that
would become buggy according to that change, including those with scripts
starting with /usr/bin/env. But if it is a reachable target, why not ?
Side remark: for Python, section 1.4.2 of its policy also restricts the use of
/usr/bin/env under a "should not" directive, in line with Debian Policy's
section 10.4 that requests the scripts to started with a "shell", which
/usr/bin/env is not.
Have a nice day,
Tsurumi, Kanagawa, Japan