pkgsrc-Users archive

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

CDPATH and the bootstrap script



Hello,

Recently, a colleauge of mine ran into a problem with the bootstrap
script when invoked as pkgsrc/bootstrap/bootstrap on a Linux (SLES 11)
system. The error is as follows:

===> running: /usr/bin/sed -e 's|@DEFAULT_INSTALL_MODE@|'0755'|'
/move_fs/pkgsrc/2014Q2/pkgsrc/bootstrap
/move_fs/pkgsrc/2014Q2/pkgsrc/sysutils/install-sh/files/install-sh.in >
/move_fs/pkgsrc/2014Q2/work.bootstrap/bin/install-sh
/usr/bin/sed: read error on /move_fs/pkgsrc/2014Q2/pkgsrc/bootstrap: Is
a directory
pkgsrc/bootstrap/bootstrap: line 276:
/move_fs/pkgsrc/2014Q2/pkgsrc/sysutils/install-sh/files/install-sh.in:
Permission denied
===> exited with status 126

The script would run fine if invoked from the bootstrap directory, but
not when invoked with a relative path. After some investigation, the
problem was found to be due to bash's behaviour when CDPATH is set;
cd'ing to a relative directory with CDPATH set has the side-effect of
printing the current working directory.

Thus, in the bootstrap script,

        bootstrapdir=$(cd $bootstrapdir && pwd)

causes bootstrapdir to have _two_ values when /bin/sh is really bash and
CDPATH is set.

A trivial solution is to set CDPATH to an empty string in the bootstrap
script.

-- 
Iain Morgan


Home | Main Index | Thread Index | Old Index