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

policy should frown on programs in PATH with language extentions (ie, .pl)



There seem to be more and more packages that are dumping programs into
/usr/bin or elsewhere and givning them names with end in .pl, .sh, .py,
.tcl. etc. I hadn't realized exactly how many there were until I looked
through a ls /usr/bin/*.* on my system, and found almost a dozen, like
these:

/usr/bin/abw2html.pl
/usr/bin/bbkeysconf.pl
/usr/bin/cm2rem.tcl
/usr/bin/collateindex.pl
/usr/bin/dpkg-checkdeps.rb /usr/bin/dpkg.rb [ possibly a special case ]
/usr/bin/i2e.sh [ somewhat of a special case ]
/usr/bin/ttfadmin.sh
/usr/bin/wkdemenu.pl

I'll bet that most of these are things that were included in an upstream
tarball as examples or one-use scripts or what have you and were not
really expected to be slapped into /usr/bin. Just look at the number of
similarly named programs in the examples directory -- which is fine of
course. It's fine too that the maintainers of these packages chose to
put the programs in /usr/bin, but I think they should take the time to
make them look like regular unix programs, by removing the extensions
when they do.

I have filed bug reports on most of the above, and on various other programs
like these in the past. I think that this is a bad path for us to be going
down, for some obvious reasons:

  - What if the implementation languages changes?
  - Why should a user care what the implementation language is?
  - It looks unprofessional and flies in the face of unix tradition.
  - It's harder to type. (See also bug #189304.)

There may already be enough packages doing this, or enough special cases
(like i2e.sh, which complements an i2e program but could still stand to be
renamed, or dpkg.rb which I don't really know why is in /usr/bin, but
obviously cannot be called just dpkg) so that policy cannot outright
prohibit the practice, but I feel it should discourage it, and the vast
body of scripts in PATH in Debian do not use this naming strategy after
all.

I suggest something like this be added to section 11.4:

    When scripts are installed into /usr/bin or other directories in
    the PATH, the program name should not include an extension such as
    .sh or .pl that denotes the scripting language currently used to
    implement it. There may be rare exceptions to this rule, and this
    does not apply to scripts in /usr/share or to example scripts in
    /usr/share/doc/*/examples.

-- 
see shy jo

Attachment: pgpAqrhRwkrrd.pgp
Description: PGP signature


Reply to: