Here's a patch that makes ybin strip off leading and trailing whitespace and (0 or 1) leading and trailing quote marks. It also passes arguments for ofpath thru "readlink -f" before calling ofpath.
I've tested it on my PowerMac G4. It works there. I don't know if it will work in the other environments where yaboot is needed. I don't have the necessary hardware for testing that.
Others please try it. Enjoy! Rick
*** /usr/sbin/ybin Sun Jul 16 07:45:35 2006 --- /tmp/ybin Sun May 9 00:14:04 2010 *************** *** 190,196 **** { case "$1" in str) ! v=`grep "^$2[\ ,=]" "$CONF"` ; echo "${v#*=}" ;; flag) grep "^$2\>" "$CONF" > /dev/null && echo 0 || echo 1 --- 190,209 ---- { case "$1" in str) ! v=`grep "^$2[\ ,=]" "$CONF"` ! v="${v#*=}" ! # trim off leading and trailing blanks or tabs ! w="" ! while [ "$w" != "$v" ] ! do ! w="$v" ! v="${v##[ ]}" ! v="${v%%[ ]}" ! done ! # and zero or one leading and trailing quotes ! v="${v##[\'\"]}" ! v="${v%%[\'\"]}" ! echo "$v" ;; flag) grep "^$2\>" "$CONF" > /dev/null && echo 0 || echo 1 *************** *** 201,206 **** --- 214,224 ---- esac } + fofpath() + { + $OFPATH "$(readlink -f "$1")" + } + ## check for existence of a configuration file, and make sure we have ## read permission. confexist() *************** *** 611,617 **** ## figure out bootstrap device OF pathname if user did not supply it. if [ -z "$ofboot" ] ; then [ "$VERBOSE" = 1 ] && echo "$PRG: Finding OpenFirmware device path to \`$boot'..." ! ofboot="$($OFPATH $boot)" if [ $? != 0 ] ; then echo 1>&2 "$PRG: Unable to find OpenFirmware path for boot=$boot" echo 1>&2 "$PRG: Please add ofboot=<path> where <path> is the OpenFirmware path to $boot to $CONF" --- 629,635 ---- ## figure out bootstrap device OF pathname if user did not supply it. if [ -z "$ofboot" ] ; then [ "$VERBOSE" = 1 ] && echo "$PRG: Finding OpenFirmware device path to \`$boot'..." ! ofboot="$(fofpath $boot)" if [ $? != 0 ] ; then echo 1>&2 "$PRG: Unable to find OpenFirmware path for boot=$boot" echo 1>&2 "$PRG: Please add ofboot=<path> where <path> is the OpenFirmware path to $boot to $CONF" *************** *** 626,632 **** /dev/*) [ "$VERBOSE" = 1 ] && echo "$PRG: Finding OpenFirmware device path to \`$bsd'..." local sbsd="$bsd" ! bsd="$($OFPATH $bsd)" if [ $? != 0 ] ; then echo 1>&2 "$PRG: Unable to determine OpenFirmware path for bsd=$sbsd" echo 1>&2 "$PRG: Try specifying the real OpenFirmware path for bsd=$sbsd in $CONF" --- 644,650 ---- /dev/*) [ "$VERBOSE" = 1 ] && echo "$PRG: Finding OpenFirmware device path to \`$bsd'..." local sbsd="$bsd" ! bsd="$(fofpath $bsd)" if [ $? != 0 ] ; then echo 1>&2 "$PRG: Unable to determine OpenFirmware path for bsd=$sbsd" echo 1>&2 "$PRG: Try specifying the real OpenFirmware path for bsd=$sbsd in $CONF" *************** *** 645,651 **** /dev/*) [ "$VERBOSE" = 1 ] && echo "$PRG: Finding OpenFirmware device path to \`$macos'..." local smacos="$macos" ! macos="$($OFPATH $macos)" if [ $? != 0 ] ; then echo 1>&2 "$PRG: Unable to determine OpenFirmware path for macos=$smacos" echo 1>&2 "$PRG: Try specifying the real OpenFirmware path for macos=$smacos in $CONF" --- 663,669 ---- /dev/*) [ "$VERBOSE" = 1 ] && echo "$PRG: Finding OpenFirmware device path to \`$macos'..." local smacos="$macos" ! macos="$(fofpath $macos)" if [ $? != 0 ] ; then echo 1>&2 "$PRG: Unable to determine OpenFirmware path for macos=$smacos" echo 1>&2 "$PRG: Try specifying the real OpenFirmware path for macos=$smacos in $CONF" *************** *** 664,670 **** /dev/*) [ "$VERBOSE" = 1 ] && echo "$PRG: Finding OpenFirmware device path to \`$macosx'..." local smacosx="$macosx" ! macosx="$($OFPATH $macosx)" if [ $? != 0 ] ; then echo 1>&2 "$PRG: Unable to determine OpenFirmware path for macosx=$smacosx" echo 1>&2 "$PRG: Try specifying the real OpenFirmware path for macosx=$smacosx in $CONF" --- 682,688 ---- /dev/*) [ "$VERBOSE" = 1 ] && echo "$PRG: Finding OpenFirmware device path to \`$macosx'..." local smacosx="$macosx" ! macosx="$(fofpath $macosx)" if [ $? != 0 ] ; then echo 1>&2 "$PRG: Unable to determine OpenFirmware path for macosx=$smacosx" echo 1>&2 "$PRG: Try specifying the real OpenFirmware path for macosx=$smacosx in $CONF" *************** *** 683,689 **** /dev/*) [ "$VERBOSE" = 1 ] && echo "$PRG: Finding OpenFirmware device path to \`$darwin'..." local sdarwin="$darwin" ! darwin="$($OFPATH $darwin)" if [ $? != 0 ] ; then echo 1>&2 "$PRG: Unable to determine OpenFirmware path for darwin=$sdarwin" echo 1>&2 "$PRG: Try specifying the real OpenFirmware path for darwin=$sdarwin in $CONF" --- 701,707 ---- /dev/*) [ "$VERBOSE" = 1 ] && echo "$PRG: Finding OpenFirmware device path to \`$darwin'..." local sdarwin="$darwin" ! darwin="$(fofpath $darwin)" if [ $? != 0 ] ; then echo 1>&2 "$PRG: Unable to determine OpenFirmware path for darwin=$sdarwin" echo 1>&2 "$PRG: Try specifying the real OpenFirmware path for darwin=$sdarwin in $CONF"