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##*/}) || \