From 8909891e37207ef2fa630a6d3d8ba3bec6285408 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Thu, 18 Sep 2003 05:38:43 +0000 Subject: [PATCH] Clifford Wolf : "dont build packages with broken dependencies" feature (#99) git-svn-id: http://www.rocklinux.org/svn/rock-linux/trunk@1441 c5f82cb5-29bc-0310-9cd0-bff59a50e3bc --- Documentation/Developers/CHANGELOG-RENE | 1 + package/base/sysfiles/hwscan.awk | 4 ++-- scripts/Build-Target | 12 +++++++++--- scripts/Create-PkgQueue | 13 +++++++++++++ scripts/config.in | 2 ++ 5 files changed, 27 insertions(+), 5 deletions(-) diff --git a/Documentation/Developers/CHANGELOG-RENE b/Documentation/Developers/CHANGELOG-RENE index febf92564..690157899 100644 --- a/Documentation/Developers/CHANGELOG-RENE +++ b/Documentation/Developers/CHANGELOG-RENE @@ -4,6 +4,7 @@ - fixed linux24 linux24benh ppc/config.in to allow to set CONFIG_PPC_RTC properly - bootdisk size reductions (a couple MB) + - Clifford Wolf: no broken deps config option (#99) *) 2003-09-16 (2.0.0-rc1 - 2.0.0-rc2) diff --git a/package/base/sysfiles/hwscan.awk b/package/base/sysfiles/hwscan.awk index cfd2e820a..966aee294 100644 --- a/package/base/sysfiles/hwscan.awk +++ b/package/base/sysfiles/hwscan.awk @@ -19,8 +19,8 @@ function autocomplete(mod, id) { if ( modidx[mod] ~ "/video/" ) { driver_cmd[id] = driver_cmd[id] \ - "\n:touch /dev/vc/{1,2,3,4,5,6}" \ - "\n:fbset -a 800x600-60" \ + "\n: touch /dev/vc/{1,2,3,4,5,6}" \ + "\n: fbset -a 800x600-60" \ "\nchvt 2; sleep 1; chvt 1"; driver_initrd[id] = 0; } diff --git a/scripts/Build-Target b/scripts/Build-Target index 41bd34671..b918cd428 100755 --- a/scripts/Build-Target +++ b/scripts/Build-Target @@ -69,6 +69,11 @@ fi # Package Build loop - executed by build-target # pkgloop() { + if [ "$ROCKCFG_NOBROKENDEPS" = 1 ]; then + nobrokendeps="-nobrokendeps" + else + nobrokendeps="" + fi if [ "$ROCKCFG_RETRY_BROKEN" -eq 1 -a \ "`ls ${build_root}/var/adm/logs/*.err 2> /dev/null`" ] ; then echo_header "Removing old error logs ..." @@ -131,8 +136,8 @@ in the right way, the nodes will automatically start building the jobs. done if [ "$newqueue" = 1 ] ; then - ./scripts/Create-PkgQueue -cfg $config | \ - sort -r -n -k2 | \ + ./scripts/Create-PkgQueue -cfg $config \ + $nobrokendeps | sort -r -n -k2 | \ if [ $ROCKCFG_PARALLEL_MAX -gt 0 ] then head -$ROCKCFG_PARALLEL_MAX else cat ; fi > $qdir/queue.new @@ -185,7 +190,8 @@ fi exit 0 else while - next="`./scripts/Create-PkgQueue -cfg "$config" -single`" + next="`./scripts/Create-PkgQueue \ + -cfg "$config" -single -nobrokendeps`" [ "$next" ] do pkgloop_package $next diff --git a/scripts/Create-PkgQueue b/scripts/Create-PkgQueue index 4d849ecfb..3117c420d 100755 --- a/scripts/Create-PkgQueue +++ b/scripts/Create-PkgQueue @@ -26,6 +26,7 @@ config=default logdir="" single=0 debug=0 +nobrokendeps=0 while [ "$1" ] ; do case "$1" in @@ -37,6 +38,8 @@ while [ "$1" ] ; do logdir=$2 ; shift ; shift ;; -debug) debug=1 ; shift ;; + -nobrokendeps) + nobrokendeps=1 ; shift ;; *) echo "Usage: $0 [ -cfg config ] [ -single ] \\" echo " ${0//?/ } [ -logdir logdir ] [ -debug ]" @@ -64,6 +67,7 @@ function check_package() { gsub("", "err", errfile); gsub("", "out", outfile); + if ( (getline dummy < logfile == -1) && (getline dummy < errfile == -1) ) { build_this_package = 1; @@ -150,6 +154,14 @@ function check_package() { not_present = not_present " " package " "; } + else + if ( nobrokendeps ) + { + close(errfile); + if ( (getline dummy < errfile != -1) ) { + not_present = not_present " " package " "; + } + } close(logfile); # ignore errors here if we close(errfile); # did not open this files @@ -163,6 +175,7 @@ BEGIN { stage01_not_present=0; stage9_no_deps=9; + nobrokendeps='$nobrokendeps'; config="'$config'"; single='$single'; debug='$debug'; logdir="'"${logdir:-build/$ROCKCFG_ID/root/var/adm/logs}"'"; diff --git a/scripts/config.in b/scripts/config.in index e13c26ffb..7bc1dc48c 100644 --- a/scripts/config.in +++ b/scripts/config.in @@ -180,6 +180,8 @@ block_begin 3 bool 'Retry building broken packages' ROCKCFG_RETRY_BROKEN 0 bool 'Disable packages which are marked as broken' \ ROCKCFG_DISABLE_BROKEN 0 + bool 'Do not try building packages if deps failed' \ + ROCKCFG_NOBROKENDEPS 0 bool 'Always clean up src dirs (even on pkg fail)' \ ROCKCFG_ALWAYS_CLEAN 0 bool 'Create debug information (xtrace) for builds' ROCKCFG_XTRACE 0