Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Aug 1999 19:50:19 -0400 (EDT)
From:      aa8vb@ipass.net
To:        FreeBSD-gnats-submit@freebsd.org
Cc:        aa8vb@ipass.net
Subject:   ports/13276: Python port needs a hack for FreeBSD's non-standard /bin/sh read command
Message-ID:  <199908202350.TAA15973@stealth.ipass.net.>

next in thread | raw e-mail | index | archive | help

>Number:         13276
>Category:       ports
>Synopsis:       Python port needs a hack for FreeBSD's non-standard /bin/sh read com\
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Aug 20 17:00:01 PDT 1999
>Closed-Date:
>Last-Modified:
>Originator:     Randall Hopper
>Release:        FreeBSD 3.2-RELEASE i386
>Organization:
self
>Environment:

        Stock 3.2-RELEASE.  Python 1.5.2 (built from ports).

>Description:

        See the PR:

           bin/13274: /bin/sh 'read' command does not work correctly

        for details, but basically FreeBSD /bin/sh 'read' does not honor
        continuation lines like other UNIXes do by default.  One has to
        specify a FreeBSD-specific switch to get it to behavior in the
        standard way.

        The effect for the Python port/package is that Python's makesetup
        fails when fed a standard Setup file (e.g. PyOpenGL) because it
        doesn't honor the continuation lines by default.  One could hack
        Setup files each time, but the better hack (until FreeBSD's /bin/sh
        read command is brought in line) is to patch the Python makesetup
        script when the package is built to invoke read with the
        FreeBSD-specific handle-continuation-lines option (see below).

>How-To-Repeat:

        Grab PyOpenGL, untar, cd src, cp Setup.CONFIGURE Setup.proto,
        python BUILD.py, and you will see this breakage:

            /usr/local/lib/python1.5/config/makesetup  -m Makefile.pre -c /usr/local/lib/python1.5/config/config.c.in Setup -n  /usr/local/lib/python1.5/config/Setup.thread /usr/local/lib/python1.5/config/Setup.local /usr/local/lib/python1.5/config/Setup
            bad word \ in _glut     \
            *** Error code 1

            Stop.
            *** Error code 1

            Stop.

        Under the hood, what's going on is this:

               $ read line
               some text here \
               $ more text
               text: No such file or directory
               $ echo $line
               some text here \
            
            # NOTE: On other unices you get this:

               > sh
               $ read line
               some text here \
               more text
               $ echo $line
               some text here more text

>Fix:

      Please insert this patch into the patches subdirectory of the Python
      port.  Thanks.

      --- ./Modules/ORIG/makesetup    Tue May 11 13:15:09 1999
      +++ ./Modules/makesetup Fri Aug 20 19:47:32 1999
      @@ -101,7 +101,7 @@
              LIBS=
              LOCALLIBS=
              BASELIBS=
      -       while read line
      +       while read -e line
              do
                      # Output DEFS in reverse order so first definition overrides
                      case $line in

>Release-Note:
>Audit-Trail:
>Unformatted:
 mand


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




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