Re: Bug in #! processing - "pear broken on current"

From: Garance A Drosehn (gad_at_FreeBSD.org)
Date: 06/09/05

  • Next message: Bruce Evans: "Re: Retiring static libpam support"
    Date: Thu, 9 Jun 2005 12:37:20 -0400
    To: "Matthew D. Fuller" <fullermd@over-yonder.net>
    
    

    [moved over from the thread:
            Re: cvs commit: src/sys/kern imgact_shell.c
    on the cvs-src mailing list...]

    At 11:03 AM -0500 6/9/05, Matthew D. Fuller wrote:
    >On Thu, Jun 09, 2005 at 12:00:17PM -0400 I heard the voice of
    >Garance A Drosehn, and lo! it spake thus:
    > > Matthew wrote:
    > > ] See also the "pear broken on current" thread on -current
    > > ] and -ports around last weekend. Of course, I don't know
    > > ] if pear is wrong in what it's trying to do, but the change
    > > ] does appear to throw it off.
    > >
    > > I'm also willing to write some more changes to sh/options.c, if
    > > that is the best place to fix the problems that these ports are
    > > running into.
    >
    >Well, I dunno what part of it is giving troubles (and I haven't seen
    >it myself, since I'm still on RELENG_5 for the moment; just keeping my
    >eyes open). It doesn't seem like a terribly esoteric line though:
    >
    >#!/usr/local/bin/php -n -q -dsafe_mode=0 -doutput_buffering=1

    It is very likely that the problem which is being seen with this
    script is due to the change in parsing I committed on May 28th.
    Before the change, php would have been started up with:

                [0] -> /usr/local/bin/php
                [1] -> -n
                [2] -> -q
                [3] -> -dsafe_mode=0
                [4] -> -doutput_buffering=1
                [5] -> /usr/local/bin/name-of-script
             [6...] -> parameters specified by user

    and now php is being started with:

                [0] -> /usr/local/bin/php
                [1] -> -n -q -dsafe_mode=0 -doutput_buffering=1
                [2] -> /usr/local/bin/name-of-script
             [3...] -> parameters specified by user

    Assuming 'php' does not know what to do when all those options are
    glommed together in a single argument, then the above script would
    not work right on any other operating systems either. The change
    I made on the 28th gets FreeBSD to work more like other OS's when
    it comes to parsing that #!-line in scripts.

    Changes to /bin/sh would not fix this, because /bin/sh is not
    involved in this situation. But the change I'm thinking of for
    /usr/bin/env could be used to fix this, once I write up that change...

    -- 
    Garance Alistair Drosehn     =      gad@gilead.netel.rpi.edu
    Senior Systems Programmer               or   gad@FreeBSD.org
    Rensselaer Polytechnic Institute;             Troy, NY;  USA
    _______________________________________________
    freebsd-arch@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-arch
    To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org"
    

  • Next message: Bruce Evans: "Re: Retiring static libpam support"

    Relevant Pages