Subject: NetBSD, the scotty pkg, and #!
To: None <tech-pkg@netbsd.org>
From: None <Havard.Eidnes@runit.sintef.no>
List: tech-pkg
Date: 06/14/2000 19:33:01
Hi,

I've recently bumped into an unpleasantness with the scotty
package.  Our package installs the following script as
/usr/pkg/bin/scotty:

#!/bin/sh
export TCLLIBPATH=3D"/usr/pkg/lib/tnm2.1.8"
exec /usr/pkg/bin/scotty2.1.8 $*

This becomes a problem when I try to run some of my scotty
scripts (which previously through a local installation pointed
directly to the real executable) with

#!/usr/pkg/bin/scotty

What ends up happening is that the scotty (tcl) code gets fed to
the Bourne shell -- not exactly a great recipe for success.

Apparently, NetBSD's execve(2) manual page does not document the
same restriction as Solaris' execve(2) page does, namely:

     An interpreter file begins with a line of the form

          #! pathname [arg]

     [...] The interpreter named by pathname
     must not be an interpreter file.

although the same restriction seems to apply in NetBSD's case.

So, I would suggest the following:

a) That the scotty wrapper script instead be turned into a real
   program written in C doing the same thing as above, or that
   the default TCLLIBPATH be compiled into the "real" scotty
   executable.

b) That someone knowledgeable verify whether the restriction of
   "double interpreters" is sensible to keep, and if it is, fix
   the documentation to point this out.

Comments?

- H=E5vard