summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbuild.sh31
-rw-r--r--tools/builder_common.sh10
2 files changed, 34 insertions, 7 deletions
diff --git a/build.sh b/build.sh
index 8e135e0..0eba523 100755
--- a/build.sh
+++ b/build.sh
@@ -380,6 +380,10 @@ fi
export DEFAULT_KERNEL=${DEFAULT_KERNEL_ISO:-"${PRODUCT_NAME}"}
+# XXX: Figure out why wait is failing and proper fix
+# Global variable to keep track of process running in bg
+export _bg_pids=""
+
for _IMGTOBUILD in $_IMAGESTOBUILD; do
# Clean up items that should be cleaned each run
staginareas_clean_each_run
@@ -413,12 +417,29 @@ done
core_pkg_create_repo
-if [ -n "${SNAPSHOTS}" ]; then
- snapshots_update_status ">>> NOTE: waiting for jobs: $(jobs -l) to finish..."
-else
- echo ">>> NOTE: waiting for jobs: $(jobs -l) to finish..."
+if [ -n "${_bg_pids}" ]; then
+ if [ -n "${SNAPSHOTS}" ]; then
+ snapshots_update_status ">>> NOTE: waiting for jobs: ${_bg_pids} to finish..."
+ else
+ echo ">>> NOTE: waiting for jobs: ${_bg_pids} to finish..."
+ fi
+ wait
+
+ # XXX: For some reason wait is failing, workaround it tracking all PIDs
+ while [ -n "${_bg_pids}" ]; do
+ _tmp_pids="${_bg_pids}"
+ unset _bg_pids
+ for p in ${_tmp_pids}; do
+ [ -z "${p}" ] \
+ && continue
+
+ kill -0 ${p} >/dev/null 2>&1 \
+ && _bg_pids="${_bg_pids}${_bg_pids:+ }${p}"
+ done
+ [ -n "${_bg_pids}" ] \
+ && sleep 1
+ done
fi
-wait
if [ -n "${SNAPSHOTS}" ]; then
snapshots_copy_to_staging_iso_updates
diff --git a/tools/builder_common.sh b/tools/builder_common.sh
index 198bb2a..b82a2af 100644
--- a/tools/builder_common.sh
+++ b/tools/builder_common.sh
@@ -782,8 +782,10 @@ awk '
# Wrap up the show, Johnny
echo ">>> NanoBSD Image completed for size: $_NANO_MEDIASIZE." | tee -a ${LOGFILE}
- gzip -f $IMG &
- gzip -f $IMGUPDATE &
+ gzip -qf $IMG &
+ _bg_pids="${_bg_pids}${_bg_pids:+ }$!"
+ gzip -qf $IMGUPDATE &
+ _bg_pids="${_bg_pids}${_bg_pids:+ }$!"
done
unset IMG
@@ -1184,6 +1186,7 @@ create_iso_image() {
print_error_pfS
fi
gzip -qf $ISOPATH &
+ _bg_pids="${_bg_pids}${_bg_pids:+ }$!"
echo ">>> ISO created: $(LC_ALL=C date)" | tee -a ${LOGFILE}
}
@@ -1226,6 +1229,7 @@ create_memstick_image() {
trap "-" 1 2 15 EXIT
mdconfig -d -u ${MD} 2>&1 | tee -a ${LOGFILE}
gzip -qf $MEMSTICKPATH &
+ _bg_pids="${_bg_pids}${_bg_pids:+ }$!"
echo ">>> MEMSTICK created: $(LC_ALL=C date)" | tee -a ${LOGFILE}
}
@@ -1287,6 +1291,7 @@ create_memstick_serial_image() {
trap "-" 1 2 15 EXIT
mdconfig -d -u ${MD} 2>&1 >> ${LOGFILE}
gzip -qf $MEMSTICKSERIALPATH &
+ _bg_pids="${_bg_pids}${_bg_pids:+ }$!"
echo ">>> MEMSTICKSERIAL created: $(LC_ALL=C date)" | tee -a ${LOGFILE}
}
@@ -1350,6 +1355,7 @@ create_memstick_adi_image() {
trap "-" 1 2 15 EXIT
mdconfig -d -u ${MD} 2>&1 >> ${LOGFILE}
gzip -qf $MEMSTICKADIPATH &
+ _bg_pids="${_bg_pids}${_bg_pids:+ }$!"
echo ">>> MEMSTICKADI created: $(LC_ALL=C date)" | tee -a ${LOGFILE}
}
OpenPOWER on IntegriCloud