sysmerge hangs while fetching the SHA256.sig file when working with local sets, 
ie.:
#export SM_PATH=/nas2/public/OpenBSD/snapshots/amd64
#cd $SM_PATH
#ls -l SHA256.sig xetc56.tgz
-rw-r--r--  1 rd  rd   1977 Aug 26 23:39 SHA256.sig
-rw-r--r--  1 rd  rd  69066 Aug  6 16:10 xetc56.tgz
#sysmerge -bd -x $SM_PATH/xetc56.tgz
===> Fetching file:///usr/share/sysmerge/etc.tgz
===> Fetching file:///nas2/public/OpenBSD/snapshots/amd64/xetc56.tgz
===> Fetching /nas2/public/OpenBSD/snapshots/amd64/SHA256.sig
ftp: /nas2/public/OpenBSD/snapshots/amd64/SHA256.sig: no address associated 
with name

The following fixes it for me:
Index: sysmerge.sh
===================================================================
RCS file: /pub2/cvsroot/OpenBSD/src/usr.sbin/sysmerge/sysmerge.sh,v
retrieving revision 1.154
diff -u -p -u -p -r1.154 sysmerge.sh
--- sysmerge.sh 27 Aug 2014 14:44:42 -0000      1.154
+++ sysmerge.sh 28 Aug 2014 15:41:56 -0000
@@ -145,7 +145,12 @@ sm_fetch_and_verify() {
        done
        if [ -z "${NOSIGCHECK}" -a -n "${XTGZ}" ]; then
                echo "===> Fetching ${XTGZ%/*}/SHA256.sig"
-               /usr/bin/ftp -Vm -k "${FTP_KEEPALIVE-0}" -o 
"${WRKDIR}/SHA256.sig" "${XTGZ%/*}/SHA256.sig" >/dev/null || \
+               _url=${XTGZ%/*}/SHA256.sig
+               [[ -f ${_url} ]] && _url="file://$(readlink -f ${_url})"
+               _file=${WRKDIR}/${_url##*/}
+               [[ ${_url} == @(file|ftp|http|https)://*/*[!/] ]] ||
+                       error_rm_wrkdir "${_url}: invalid URL"
+               /usr/bin/ftp -Vm -k "${FTP_KEEPALIVE-0}" -o "${_file}" 
"${_url}" >/dev/null || \
                        error_rm_wrkdir "could not retrieve SHA256.sig"
                echo "===> Verifying ${XTGZ##*/} against ${_key}"
                (cd ${WRKDIR} && /usr/bin/signify -qC -p ${_key} -x SHA256.sig 
${XTGZ##*/}) || \

Reply via email to