Date: Thu, 28 Jun 2012 13:42:34 +0000 From: scher@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r238471 - soc2012/scher/par_ports/head/Mk Message-ID: <20120628134234.1A426106564A@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: scher Date: Thu Jun 28 13:42:33 2012 New Revision: 238471 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=238471 Log: [user_feedback][new_feature] ${_parv_ON_LOCK_FEEDBACK_TIMEOUT} is intergated into ${_PROCESS_ACTIVE_BUILDS}. User is able to configure frequency of feedbacks. Redesign of user feedback in ${_PROCESS_ACTIVE_BUILDS} script. 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 12:04:18 2012 (r238470) +++ soc2012/scher/par_ports/head/Mk/bsd.parallel.mk Thu Jun 28 13:42:33 2012 (r238471) @@ -14,7 +14,7 @@ # matter what value is assigned. # Example: _parv_WANT_PARALLEL_BUILD=yes # -# CHECK_ACTIVE_TIMEOUT - timeout in seconds before next check of active +# _parv_CHECK_ACTIVE_TIMEOUT - timeout in seconds before next check of active # builds in case if port is prohibit to spawn # another background process. Consider that this # variable is also used in non-parallel build. @@ -153,9 +153,10 @@ _parv_WAIT_FOR_UNLOCK_TIME?= 15 _parv_LOCK_ATTEMPT_TIMEOUT?= 2 +# TODO: change docs _parv_ON_LOCK_FEEDBACK_TIMEOUT?= 2 -CHECK_ACTIVE_TIMEOUT?= 2 +_parv_CHECK_ACTIVE_TIMEOUT?= 2 _parv_ON_LOCK_EXIT_STATUS= 2 _parv_LOCKF_EX_TEMPFAIL= 75 @@ -390,17 +391,16 @@ # builds. If $${builds_num} < ${_parv_PARALLEL_BUILDS_NUMBER} # then another background dependency build will be # spawned, if there is any dependency to be spawned. -# Otherwise "sleep ${CHECK_ACTIVE_TIMEOUT}" will be called. +# Otherwise "sleep ${_parv_CHECK_ACTIVE_TIMEOUT}" will be called. # $${active_builds} - a list of "pid:path:dir[:target]" or "pid:lib:dir[:target]" # tuples of all currently being processed ports, # spawned by this make process. # _PROCESS_ACTIVE_BUILDS= \ - echo "---- dependency output ----- : --- ENTER _PROCESS_ACTIVE_BUILDS SECTION "; \ + enable_feedback=${_parv_ON_LOCK_FEEDBACK_TIMEOUT}; \ while true; do \ builds_num=$$( ${ECHO_CMD} $${active_builds} | wc -w ); \ if [ $${builds_num} -lt ${_parv_PARALLEL_BUILDS_NUMBER} ] && [ $${\#depends} -ne 0 ]; then \ - echo "---- dependency output ----- : WE CAN START ANOTHER PAR BUILD "; \ break; \ fi; \ if [ $${builds_num} -eq 0 ] && [ $${\#depends} -eq 0 ]; then \ @@ -413,12 +413,9 @@ ps -p $${pid} > /dev/null || { \ wait $${pid} && status=$$? || status=$$?; \ if [ $${status} -eq 0 ]; then \ - echo "---- dependency output ----- : SOME DEP IS INSTALLED ($${dep}) "; \ - echo "---- dependency output ----- : ACTIVE BUILDS WAS _$${active_builds}_ "; \ active_builds="$${active_builds%%$${build}*} $${active_builds\#\#*$${build}}"; \ active_builds=$$( echo "$${active_builds}" | sed 's/^[[:space:]]*//' | sed 's/[[:space:]]*$$//' ); \ builds_num=$$(( $${builds_num} - 1 )); \ - echo "---- dependency output ----- : ACTIVE BUILDS NOW _$${active_builds}_ "; \ if [ ${.TARGET} = "lib-depends" ]; then \ lib=$${dep%%:*}; \ pattern="`${ECHO_CMD} $$lib | ${SED} -E -e 's/\./\\\\./g' -e 's/(\\\\)?\+/\\\\+/g'`"; \ @@ -427,38 +424,43 @@ ${FALSE}; \ fi; \ fi; \ + ${ECHO_CMD} "=====> $$(cd $${build\#\#*:}; ${MAKE} -V PKGNAME) is installed"; \ elif [ $${status} -eq ${_parv_MAKE_LOCK_EXIT_STATUS} ]; then \ - echo "---- dependency output ----- : SOME DEP IS LOCKED ($${dep}) "; \ - echo "---- dependency output ----- : ACTIVE BUILDS WAS _$${active_builds}_ "; \ + ${ECHO_CMD} "===> $$(cd $${build\#\#*:}; ${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 )); \ - echo "---- dependency output ----- : ACTIVE BUILDS NOW _$${active_builds}_ "; \ - echo "---- dependency output ----- : ADD IT BACK DO DEPENDS LIST "; \ - echo "---- dependency output ----- : DEPENDS WAS _$${depends}_ "; \ depends="$${depends} $${dep}"; \ depends=$$( echo "$${depends}" | sed 's/^[[:space:]]*//' | sed 's/[[:space:]]*$$//' ); \ - echo "---- dependency output ----- : DEPENDS NOW _$${depends}_ "; \ else \ - ${ECHO_CMD} "Errors occured while building a dependency (PID - $${pid}): $${dep}"; \ - ${ECHO_CMD} "Checkout it's log"; \ + ${ECHO_CMD} "Errors occured while building a dependency port $$(cd $${build\#\#*:}; ${MAKE} -V PKGNAME)"; \ + ${ECHO_CMD} "Checkout its log"; \ + ${ECHO_CMD} " $$(dir=$${build\#\#*:}; ${ECHO_CMD} ${_parv_PORTS_LOGS_DIR}/${_parv_PORT_LOG_FILE})"; \ ${ECHO_CMD} "Terminating..."; \ - ${_TERMINATE_PROCESS_TREE}; \ + exit 1; \ fi; \ }; \ done; \ if { [ $${builds_num} -eq ${_parv_PARALLEL_BUILDS_NUMBER} ] || \ ( [ $${builds_num} -gt 0 ] && [ $${\#depends} -eq 0 ] ); }; then \ - echo "---- dependency output ----- : CAN'T SPAWN MORE DEPS! SLEEP... "; \ - if [ $${builds_num} -eq ${_parv_PARALLEL_BUILDS_NUMBER} ]; then \ - echo ${_parv_PARALLEL_BUILDS_NUMBER} is maximum number of parallel build; \ - else \ - echo No dependencies to spawn. All remaining dependencies are building; \ + if [ $$(( $${enable_feedback} % ${_parv_ON_LOCK_FEEDBACK_TIMEOUT} )) -eq 0 ]; then \ + ${ECHO_CMD} "===> Unable to start more dependency builds."; \ + if [ $${builds_num} -eq ${_parv_PARALLEL_BUILDS_NUMBER} ]; then \ + ${ECHO_CMD} " ${_parv_PARALLEL_BUILDS_NUMBER} is maximum number of parallel builds."; \ + else \ + ${ECHO_CMD} " No dependencies to spawn. All remaining dependencies are building now."; \ + fi; \ + ${ECHO_CMD} " Currently building dependency ports are"; \ + for build in $$( ${ECHO_CMD} "$${active_builds}" ); do \ + dir=$${build\#\#*:}; \ + ${ECHO_CMD} " $$(cd $${dir}; ${MAKE} -V PKGNAME)"; \ + done; \ + enable_feedback=0; \ fi; \ - sleep ${CHECK_ACTIVE_TIMEOUT}; \ + enable_feedback=$$(( $${enable_feedback} + 1 )); \ + sleep ${_parv_CHECK_ACTIVE_TIMEOUT}; \ fi; \ - done; \ - echo "---- dependency output ----- : --- LEAVE _PROCESS_ACTIVE_BUILDS SECTION " + done # # _TERMINATE_PROCESS_TREE - this script contains all magic, related to
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120628134234.1A426106564A>