svn commit: r351422 - head/Mk

Bryan Drewery bdrewery at FreeBSD.org
Wed Apr 16 22:17:42 UTC 2014


Author: bdrewery
Date: Wed Apr 16 22:17:41 2014
New Revision: 351422
URL: http://svnweb.freebsd.org/changeset/ports/351422
QAT: https://qat.redports.org/buildarchive/r351422/

Log:
  - During 'make package' create PREFIX if not there to workaround a pkg_install
    bug [1] requiring it to be even if creating from STAGEDIR. This is only done
    when NO_STAGE is not set and for pkg_install.
  
    This fixes the following error with 'make package' from stagedir:
  
      pkg_create: couldn't resolve path for prefix: /var/qmail: No such file or directory
  
    [1] This is due to base r231300 requiring the prefix to exist when
        running pkg_create (which may not be true in staging). This was
        fixed in r240682, but never made it to 9.1
  
  With hat:	portmgr

Modified:
  head/Mk/bsd.port.mk

Modified: head/Mk/bsd.port.mk
==============================================================================
--- head/Mk/bsd.port.mk	Wed Apr 16 21:39:54 2014	(r351421)
+++ head/Mk/bsd.port.mk	Wed Apr 16 22:17:41 2014	(r351422)
@@ -3823,13 +3823,19 @@ do-package: ${TMPPLIST}
 		_LATE_PKG_ARGS="$${_LATE_PKG_ARGS} -D ${PKGMESSAGE}"; \
 	fi; \
 	${MKDIR} ${WRKDIR}/pkg; \
+	if ! [ -d "${PREFIX}" ]; then \
+	    made_prefix=1; \
+	    ${MKDIR} ${PREFIX}; \
+	fi; \
 	if ${PKG_CMD} -S ${STAGEDIR} ${PKG_ARGS} ${WRKDIR}/pkg/${PKGNAME}${PKG_SUFX}; then \
+		[ -n "$${made_prefix}" ] && ${RMDIR} ${PREFIX}; \
 		if [ -d ${PKGREPOSITORY} -a -w ${PKGREPOSITORY} ]; then \
 			${LN} -f ${WRKDIR}/pkg/${PKGNAME}${PKG_SUFX} ${PKGFILE} 2>/dev/null || \
 			    ${CP} -af ${WRKDIR}/pkg/${PKGNAME}${PKG_SUFX} ${PKGFILE}; \
 			cd ${.CURDIR} && eval ${MAKE} package-links; \
 		fi; \
 	else \
+		[ -n "$${made_prefix}" ] && ${RMDIR} ${PREFIX}; \
 		cd ${.CURDIR} && eval ${MAKE} delete-package; \
 		exit 1; \
 	fi


More information about the svn-ports-all mailing list