Index: Mk/bsd.port.mk =================================================================== --- Mk/bsd.port.mk +++ Mk/bsd.port.mk @@ -4700,17 +4700,6 @@ .if empty(ALL_OPTIONS) && empty(OPTIONS_SINGLE) && empty(OPTIONS_MULTI) && empty(OPTIONS_RADIO) && empty(OPTIONS_GROUP) @${ECHO_MSG} "===> No options to configure" .else - @optionsdir=${OPTIONS_FILE:H}; \ - if [ ! -w "${PORT_DBDIR}" -a "`stat -f %u ${PORT_DBDIR:H}`" = 0 ]; \ - then \ - ${ECHO_MSG} "===> Switching to root credentials to create $${optionsdir}"; \ - (${SU_CMD} "${SH} -c \"${MKDIR} $${optionsdir} 2> /dev/null\"") || \ - (${ECHO_MSG} "===> Cannot create $${optionsdir}, check permissions"; exit 1); \ - ${ECHO_MSG} "===> Returning to user credentials" ; \ - else \ - ${MKDIR} $${optionsdir} 2> /dev/null || \ - (${ECHO_MSG} "===> Cannot create $${optionsdir}, check permissions"; exit 1) ; \ - fi @TMPOPTIONSFILE=$$(mktemp -t portoptions); \ trap "${RM} $${TMPOPTIONSFILE}; exit 1" 1 2 3 5 10 13 15; \ ${SETENV} ${D4P_ENV} ${SH} ${SCRIPTSDIR}/dialog4ports.sh $${TMPOPTIONSFILE} || { \ @@ -4738,13 +4727,15 @@ ${ECHO_CMD} "OPTIONS_FILE_UNSET+=$${i}" >> $${TMPOPTIONSFILE}; \ fi; \ done; \ - if [ ! -w "${OPTIONS_FILE:H}" -a "`stat -f %u ${OPTIONS_FILE:H}`" != ${UID} ]; \ - then \ + optionsdir=${OPTIONS_FILE:H}; \ + if [ -e "${optionsdir}" ] && [ -w "${optionsdir}" -o "`stat -f %u ${optionsdir}`" != ${UID} ]; then \ + { ${MKDIR} $${optionsdir} 2> /dev/null && ${CAT} $${TMPOPTIONSFILE} > ${OPTIONS_FILE}; } || \ + { ${ECHO_MSG} "===> Cannot create ${OPTIONS_FILE}, check permissions"; exit 1; }; \ + else \ ${ECHO_MSG} "===> Switching to root credentials to write ${OPTIONS_FILE}"; \ - ${SU_CMD} "${CAT} $${TMPOPTIONSFILE} > ${OPTIONS_FILE}"; \ + ${SU_CMD} "${MKDIR} $${optionsdir} 2> /dev/null && ${CAT} $${TMPOPTIONSFILE} > ${OPTIONS_FILE}" || \ + { ${ECHO_MSG} "===> Cannot create ${OPTIONS_FILE}, check permissions"; exit 1; }; \ ${ECHO_MSG} "===> Returning to user credentials"; \ - else \ - ${CAT} $${TMPOPTIONSFILE} > ${OPTIONS_FILE}; \ fi; \ ${RM} $${TMPOPTIONSFILE} @cd ${.CURDIR} && ${MAKE} sanity-config