pkgsrc-Bugs archive

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

pkg/39795: install-sh fails at pax with IRIX /bin/sh



>Number:         39795
>Category:       pkg
>Synopsis:       install-sh fails at pax with IRIX /bin/sh
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Oct 24 14:55:00 +0000 2008
>Originator:     Tim Larson
>Release:        
>Organization:
>Environment:
IRIX franklin 6.5 6.5.22f 10070056 IP32
>Description:
Bootstrap fails on pax install.

=> Unwrapping files-to-be-installed.
===> Installing for pax-20080110
/usr/pkgsrc/bootstrap/work/bin/install-sh -c -o root -g sys -m 755 -d 
/usr/pkg/bin
/usr/pkgsrc/bootstrap/work/bin/install-sh -c -o root -g sys -m 755 -d 
/usr/pkg/man/man1
/usr/pkgsrc/bootstrap/work/bin/install-sh -c -o root -g sys -m 755 -d 
/usr/pkg/man/cat1
/usr/pkgsrc/bootstrap/work/bin/install-sh -c -o root -g sys pax 
/usr/pkg/bin/$(echo pax | sed 's,x,x,')
install: destination is not a directory
*** Error code 1

When run manually, the command executes just fine.  But my shell is bash, and 
the script runs as /bin/sh.  Changing to /bin/sh and running manually gives 
this error as well.  In /bin/sh, the values of $msrc and $src (in the 
install-sh script) are:

msrc:pax /usr/pkg/bin/$(echo pax | sed 
src:sed

The correct values are "pax" and "/usr/pkg/bin/pax".
>How-To-Repeat:
Run bootstrap on an IRIX system.
>Fix:
(Suggestions only, not known-working resolutions.)

I recommend that all scripts necessary for the bootstrap process be created 
from running sed on a script.in file rather than merely copied into place, so 
that the first line can be changed to whatever bootstrap's $shprog has been set 
to.  The install-sh is already like this, so it just needs the extra 
replacement done.  Using the specified $shprog would allow us to work around 
known shell deficiencies of an OS simply by using a working shell instead.

BUT, since IRIX-supplied shells sh and ksh are the same (and broken), IRIX 
should have $need_ksh set to yes.  Bootstrapping ksh should happen earlier.  
Then $shprog can be set to this shell, and other scripts regenerated (see 
above) to use the new value.

ALSO, maybe the pax Makefile.in can be modified so that it does not have 
command substitution.  If this were done, most likely parsing of the command 
line would be successful.



Home | Main Index | Thread Index | Old Index