From owner-svn-soc-all@FreeBSD.ORG Thu Jun 28 19:06:18 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 82D7B1065673 for ; Thu, 28 Jun 2012 19:06:16 +0000 (UTC) (envelope-from scher@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Thu, 28 Jun 2012 19:06:16 +0000 Date: Thu, 28 Jun 2012 19:06:16 +0000 From: scher@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120628190616.82D7B1065673@hub.freebsd.org> Cc: Subject: socsvn commit: r238493 - soc2012/scher/par_ports/head/Mk X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jun 2012 19:06:18 -0000 Author: scher Date: Thu Jun 28 19:06:16 2012 New Revision: 238493 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=238493 Log: [bugfix] XXX_DEPENDS patterns are "path:dir[:target]" but ${_parv_PRINT_ACTIVE_BUILDS} ${_PROCESS_ACTIVE_BUILDS} ${_parv_CHECK_ALL_DEPS_LOCKED} did not consider "[:target] part. Now this scripts consider this part of pattern. Modified: soc2012/scher/par_ports/head/Mk/bsd.parallel.mk Modified: soc2012/scher/par_ports/head/Mk/bsd.parallel.mk ============================================================================== --- soc2012/scher/par_ports/head/Mk/bsd.parallel.mk Thu Jun 28 18:52:40 2012 (r238492) +++ soc2012/scher/par_ports/head/Mk/bsd.parallel.mk Thu Jun 28 19:06:16 2012 (r238493) @@ -399,7 +399,10 @@ _parv_PRINT_ACTIVE_BUILDS= \ ${ECHO_CMD} " Currently building dependency ports are"; \ for build in $$( ${ECHO_CMD} "$${active_builds}" ); do \ - dir=$${build\#\#*:}; \ + dep=$${build\#*:}; \ + dir=$${dep\#*:}; \ + target=$${dep\#\#*:}; \ + [ $$dir != $$target ] && dir=$${dir%%:*}; \ ${ECHO_CMD} " $$(cd $${dir}; ${MAKE} -V PKGNAME)"; \ done @@ -418,6 +421,9 @@ pid=$${build%%:*}; \ dep=$${build\#*:}; \ ps -p $${pid} > /dev/null || { \ + dir=$${dep\#*:}; \ + target=$${dep\#\#*:}; \ + [ $$dir != $$target ] && dir=$${dir%%:*}; \ wait $${pid} && status=$$? || status=$$?; \ if [ $${status} -eq 0 ]; then \ active_builds="$${active_builds%%$${build}*} $${active_builds\#\#*$${build}}"; \ @@ -431,18 +437,18 @@ ${FALSE}; \ fi; \ fi; \ - ${ECHO_CMD} "=====> $$(cd $${build\#\#*:}; ${MAKE} -V PKGNAME) is installed"; \ + ${ECHO_CMD} "=====> $$(cd $${dir}; ${MAKE} -V PKGNAME) is installed"; \ elif [ $${status} -eq ${_parv_MAKE_LOCK_EXIT_STATUS} ]; then \ - ${ECHO_CMD} "===> $$(cd $${build\#\#*:}; ${MAKE} -V PKGNAME) is locked. Unable to start build."; \ + ${ECHO_CMD} "===> $$(cd $${dir}; ${MAKE} -V PKGNAME) is locked. Unable to start build."; \ active_builds="$${active_builds%%$${build}*} $${active_builds\#\#*$${build}}"; \ active_builds=$$( echo "$${active_builds}" | sed 's/^[[:space:]]*//' | sed 's/[[:space:]]*$$//' ); \ builds_num=$$(( $${builds_num} - 1 )); \ depends="$${depends} $${dep}"; \ depends=$$( echo "$${depends}" | sed 's/^[[:space:]]*//' | sed 's/[[:space:]]*$$//' ); \ else \ - ${ECHO_CMD} "Errors occured while building a dependency port $$(cd $${build\#\#*:}; ${MAKE} -V PKGNAME)"; \ + ${ECHO_CMD} "Errors occured while building a dependency port $$(cd $${dir}; ${MAKE} -V PKGNAME"; \ ${ECHO_CMD} "Checkout its log"; \ - ${ECHO_CMD} " $$(dir=$${build\#\#*:}; ${ECHO_CMD} ${_parv_PORTS_LOGS_DIR}/${_parv_PORT_LOG_FILE})"; \ + ${ECHO_CMD} " ${_parv_PORTS_LOGS_DIR}/${_parv_PORT_LOG_FILE})"; \ ${ECHO_CMD} "Terminating..."; \ exit 1; \ fi; \ @@ -472,6 +478,8 @@ while true; do \ for dep in $${depends}; do \ dir=$${dep\#*:}; \ + target=$${dep\#\#*:}; \ + [ $$dir != $$target ] && dir=$${dir%%:*}; \ { (cd $${dir}; ${MAKE} check-lock > /dev/null 2> /dev/null & wait $$! ) \ && break 2 || continue; }; \ done; \