Index: bsd.options.mk =================================================================== --- bsd.options.mk (revision 316506) +++ bsd.options.mk (working copy) @@ -44,7 +44,8 @@ .if !defined(OPTIONSMKINCLUDED) OPTIONSMKINCLUDED= bsd.options.mk -OPTIONSFILE?= ${PORT_DBDIR}/${UNIQUENAME}/options +OLDOPTIONSFILE?= ${PORT_DBDIR}/${UNIQUENAME}/options +OPTIONSFILE?= ${PORT_DBDIR}/${PKGORIGIN:S/\//_/}/options #ALL_OPTIONS= DOCS \ # NLS @@ -192,6 +193,9 @@ . endfor ## options files (from dialog) +. if exists(${OLDOPTIONSFILE}) && !make(rmconfig) +. include "${OLDOPTIONSFILE}" +. endif . if exists(${OPTIONSFILE}) && !make(rmconfig) . include "${OPTIONSFILE}" . endif Index: bsd.port.mk =================================================================== --- bsd.port.mk (revision 316506) +++ bsd.port.mk (working copy) @@ -6146,12 +6146,15 @@ .else .if ${UID} != 0 && !defined(INSTALL_AS_USER) @optionsdir=${OPTIONSFILE}; optionsdir=$${optionsdir%/*}; \ + oldoptionsdir=${OLDOPTIONSFILE}; oldoptionsdir=$${oldoptionsdir%/*}; \ ${ECHO_MSG} "===> Switching to root credentials to create $${optionsdir}"; \ - (${SU_CMD} "${SH} -c \"${MKDIR} $${optionsdir} 2> /dev/null\"") || \ + (${SU_CMD} "${SH} -c \"test -d $${oldoptionsdir} && rm -rf $${oldoptionsdir} ; ${MKDIR} $${optionsdir} 2> /dev/null\"") || \ (${ECHO_MSG} "===> Cannot create $${optionsdir}, check permissions"; exit 1); \ ${ECHO_MSG} "===> Returning to user credentials" .else @(optionsdir=${OPTIONSFILE}; optionsdir=$${optionsdir%/*}; \ + oldoptionsdir=${OLDOPTIONSFILE}; oldoptionsdir=$${oldoptionsdir%/*}; \ + test -d ${oldoptionsdir} && ${RM} -rf ${oldoptionsdir} ; \ ${MKDIR} $${optionsdir} 2> /dev/null) || \ (${ECHO_MSG} "===> Cannot create $${optionsdir}, check permissions"; exit 1) .endif @@ -6317,6 +6320,21 @@ .if !target(rmconfig) rmconfig: +.if exists(${OLDOPTIONSFILE}) + -@${ECHO_MSG} "===> Removing user-configured options for ${PKGNAME}"; \ + optionsdir=${OLDOPTIONSFILE}; optionsdir=$${optionsdir%/*}; \ + if [ ${UID} != 0 -a "x${INSTALL_AS_USER}" = "x" ]; then \ + ${ECHO_MSG} "===> Switching to root credentials to remove ${OLDOPTIONSFILE} and $${optionsdir}"; \ + ${SU_CMD} "${RM} -f ${OLDOPTIONSFILE} ; \ + ${RMDIR} $${optionsdir}"; \ + ${ECHO_MSG} "===> Returning to user credentials"; \ + else \ + ${RM} -f ${OLDOPTIONSFILE}; \ + ${RMDIR} $${optionsdir} 2>/dev/null || return 0; \ + fi +.else + @${ECHO_MSG} "===> No user-specified options configured for ${PKGNAME}" +.endif .if exists(${OPTIONSFILE}) -@${ECHO_MSG} "===> Removing user-configured options for ${PKGNAME}"; \ optionsdir=${OPTIONSFILE}; optionsdir=$${optionsdir%/*}; \