#! /usr/bin/perl preferred

Stepan Kasal skasal at redhat.com
Fri Aug 28 20:07:23 UTC 2009


Hello,

let me explain.  I was told "they are doing this env clenup
with python scripts don't you want to do it for perl as well?"
My hands were quicker than my brain and I did the search.

Only when I was about to post the results, I realized that I'm
actually not convinced about the issue.

The official reasoning is that if a system tool is written in Python,
we want to "guarantee" that it works, so we would rather run it with
Fedora Python, not with a random experimental Python.  Likewise for
Perl; if logrotate or some such were written in perl, it should just
work (modulo Fedora Perl bugs), and the whole system should not crash
just because of a random /usr/local/bin/perl.

Actually, what Chris said seems to support this reasoning:
> [...], especially as we can't replace the system
> Perl as it may have OS implications.

The sentence seems to support what is proposed here: the
Fedora-delivered scripts should have /usr/bin/perl hardcoded, so that
"OS implications" are avoided.  Fedora users not satisfied with our
system perl can place #!/usr/bin/env to _their_ scripts, so that the
scripts mutate with every mutation of _their_ local build of perl..

But from this point of view, we should take care that
Fedora-delivered shell script never call "perl"; they should always
use /usr/bin/perl.  Taking this to the extreme, one can never know
what is deliberately put in the PATH, so we should carefully call
/usr/bin/gawk, /bin/rm, etc.  Or we should mahe sure to sanitize PATH
at the begining of every script...

As I said, I'm not fully convinced by the official reasoning.

At this point of time, I do not see any flaw in Ralf's reasoning.
But I do not want to engage in any war.
Let's forget about this and return to more important issues.

Stepan




More information about the Fedora-perl-devel-list mailing list