Date: Sat, 21 Jan 2012 10:31:42 GMT From: Garrett Cooper <yanegomi@gmail.com> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/164351: [patch] fix simple race condition in making work directory Message-ID: <201201211031.q0LAVgef034804@red.freebsd.org> Resent-Message-ID: <201201211040.q0LAe9ac092514@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 164351 >Category: ports >Synopsis: [patch] fix simple race condition in making work directory >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Jan 21 10:40:09 UTC 2012 >Closed-Date: >Last-Modified: >Originator: Garrett Cooper >Release: 9.0-STABLE >Organization: iXsystems, Inc. >Environment: FreeBSD bayonetta.local 9.0-STABLE FreeBSD 9.0-STABLE #4 r230371M: Thu Jan 19 23:55:38 PST 2012 gcooper@bayonetta.local:/usr/obj/store/freebsd/stable/9/sys/BAYONETTA amd64 >Description: make -j with -j > 1 doesn't work out of the box today because of inherent race conditions in terms of how the licensing framework works today. Instead of properly defining the WRKDIR target in bsd.ports.mk, it was being defined inline in the package-noinstall target and implicitly being depended upon in the ${_LICENSE_COOKIE} target under bsd.licenses.mk . >How-To-Repeat: cd /usr/ports/devel/gettext; make -j10 all >Fix: Patch attached with submission follows: diff --git a/bsd.licenses.mk b/bsd.licenses.mk index 0247df7..836cef8 100644 --- a/bsd.licenses.mk +++ b/bsd.licenses.mk @@ -574,7 +574,7 @@ check-license: ask-license: ${_LICENSE_COOKIE} -${_LICENSE_COOKIE}: +${_LICENSE_COOKIE}: ${_LICENSE_COOKIE:H} # Make sure all required license files exist .if ${_LICENSE_COMB} == "single" . if !defined(LICENSE_FILE) && defined(_LICENSE_TEXT) diff --git a/bsd.port.mk b/bsd.port.mk index 1a29521..481292d 100644 --- a/bsd.port.mk +++ b/bsd.port.mk @@ -1552,6 +1552,9 @@ WRKSRC?= ${WRKDIR} WRKSRC?= ${WRKDIR}/${DISTNAME} .endif +${WRKDIR} ${WRKSRC}: + @${MKDIR} ${.TARGET} + PATCH_WRKSRC?= ${WRKSRC} CONFIGURE_WRKSRC?= ${WRKSRC} BUILD_WRKSRC?= ${WRKSRC} @@ -4942,8 +4945,7 @@ pre-repackage: # install package cookie .if !target(package-noinstall) -package-noinstall: - @${MKDIR} ${WRKDIR} +package-noinstall: ${WRKDIR} @cd ${.CURDIR} && ${MAKE} pre-package \ pre-package-script do-package post-package-script @${RM} -f ${TMPPLIST} >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201201211031.q0LAVgef034804>