Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Feb 2005 17:36:38 -0500
From:      Garance A Drosihn <drosih@rpi.edu>
To:        Gordon Tetlow <gordon@tetlows.org>
Cc:        freebsd-arch@freebsd.org
Subject:   Re: Bug in #! processing - One More Time
Message-ID:  <p06210234be4556df24b0@[128.113.24.47]>
In-Reply-To: <421F92BC.3030904@tetlows.org>
References:  <200410020349.i923nG8v021675@northstar.hetzel.org> <20041002052856.GE17792@nexus.dglawrence.com> <p0611041fbd848f6aa55d@[128.113.24.47]> <20041002233542.GL714@nexus.dglawrence.com> <p0620076ebe2490ccdc00@[128.113.24.47]> <p06210225be4307a39100@[128.113.24.47]> <421F92BC.3030904@tetlows.org>

next in thread | previous in thread | raw e-mail | index | archive | help
At 1:03 PM -0800 2/25/05, Gordon Tetlow wrote:
>Garance A Drosihn wrote:
>  >
>  > 3) Change kern/imgact_shell.c to process shebang options the same
>>     way other (non-BSD?) operating systems do.  By that I mean:
>>     send the entire string as arg[1], and let the scripting
>>     language sort it out.  This is an incompatible change from
>>     FreeBSD 5.3 to 5.4, but would put make us "more consistent"
>  >    with other operating systems.

Additional data point: It seems that both OpenBSD and NetBSD do
it the same way the other OS's do.  Which is to say, I don't think
there is any OS which matches FreeBSD's present behavior.

>  > Or we could do #1 for now, and plan to do #4 after 5.4-release.
>>  Or do #1 now in 5.3, and go with some incompatible change (#2
>>  or #3) only in 6.x-current.
>
>I would say we should stick with #1 for the 5.x release and
>use #3 for 6.x and further. We have already frozen APIs and
>ABIs. For people that might have scripts that use this syntax
>to have problems between minor releases is unacceptable.

The more I look at this, the more I think we can do #3 without
breaking much of anything.  But I am not confident that I could
get it done and have it tested-enough in time for 5.4-release.
I need to write an update to kern/imgact_shell.c and bin/sh,
and I have to at least check what this means for /usr/bin/env
(since many scripts use that as the "interpreter" on `!#' lines).

Other than that, what else in the base system is even *used* as
an interpreter in this fashion?  Would `awk' be?  Anything else?

-- 
Garance Alistair Drosehn            =   gad@gilead.netel.rpi.edu
Senior Systems Programmer           or  gad@freebsd.org
Rensselaer Polytechnic Institute    or  drosih@rpi.edu


Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?p06210234be4556df24b0>