diff options
author | jlam <jlam@pkgsrc.org> | 2004-11-16 18:34:12 +0000 |
---|---|---|
committer | jlam <jlam@pkgsrc.org> | 2004-11-16 18:34:12 +0000 |
commit | fe682e7c6ca63a5cfb3a9332bce55ec56d46c88a (patch) | |
tree | 1b873e759f996dd0edf5a54de440ada4086f15b1 | |
parent | a032bf7c048dfd63a2ec259069d108dba251cc1b (diff) | |
download | pkgsrc-fe682e7c6ca63a5cfb3a9332bce55ec56d46c88a.tar.gz |
Preserve the .work.log file from a broken build as .broken.work.html
in the package directory, and add a link to it from .broken.html at
the point where the build fails. Also adjust the auxilliary scripts
to handle/cleanup .broken.work.html files.
This should enhance the ability of developers to debug broken builds
by providing important information about what is happening as a build
progresses and fails.
-rw-r--r-- | mk/bulk/bsd.bulk-pkg.mk | 20 | ||||
-rw-r--r-- | mk/bulk/build | 5 | ||||
-rw-r--r-- | mk/bulk/post-build | 7 | ||||
-rw-r--r-- | mk/bulk/pre-build | 8 |
4 files changed, 34 insertions, 6 deletions
diff --git a/mk/bulk/bsd.bulk-pkg.mk b/mk/bulk/bsd.bulk-pkg.mk index 1bfdc1431a5..70f9bb90e7b 100644 --- a/mk/bulk/bsd.bulk-pkg.mk +++ b/mk/bulk/bsd.bulk-pkg.mk @@ -1,4 +1,4 @@ -# $NetBSD: bsd.bulk-pkg.mk,v 1.64 2004/11/12 15:39:22 jlam Exp $ +# $NetBSD: bsd.bulk-pkg.mk,v 1.65 2004/11/16 18:34:12 jlam Exp $ # # Copyright (c) 1999, 2000 Hubert Feyrer <hubertf@NetBSD.org> @@ -73,6 +73,9 @@ BULK_ID?= # This file exists to mark a package as broken BROKENFILE?= .broken${BULK_ID}.html +# This file is the work log for a broken package +BROKENWRKLOG?= .broken${BULK_ID}.work.html + # This file is where the log of the build goes BUILDLOG?= .make${BULK_ID} @@ -348,7 +351,22 @@ bulk-package: ${RM} ${BUILDLOG} ; \ else \ ${MV} ${BUILDLOG} ${BROKENFILE} ;\ + if [ -f "${WRKLOG}" ]; then \ + (${ECHO_MSG} "<pre>"; \ + ${ECHO_MSG} ""; \ + ${CAT} ${WRKLOG}; \ + ${ECHO_MSG} "</pre>"; \ + ) >> ${BROKENWRKLOG}; \ + fi; \ ( \ + if [ -f "${BROKENWRKLOG}" ]; then \ + ${ECHO_MSG} "</pre>"; \ + ${ECHO_MSG} "<p>"; \ + ${ECHO_MSG} "Please view the <a href=\"../../${PKGPATH}/${BROKENWRKLOG}\">work log for ${PKGNAME}</a>"; \ + ${ECHO_MSG} "</p>"; \ + ${ECHO_MSG} "<pre>"; \ + ${ECHO_MSG} ""; \ + fi ; \ ${ECHO_MSG} "BULK> ${PKGNAME} was marked as broken:" ; \ ${LS} -la ${BROKENFILE} ; \ ${ECHO_MSG} ${MAKE} deinstall ; \ diff --git a/mk/bulk/build b/mk/bulk/build index d01b1b59298..1f8868c174b 100644 --- a/mk/bulk/build +++ b/mk/bulk/build @@ -1,5 +1,5 @@ #!/bin/sh -# $NetBSD: build,v 1.44 2004/11/12 15:39:22 jlam Exp $ +# $NetBSD: build,v 1.45 2004/11/16 18:34:12 jlam Exp $ # # Copyright (c) 1999, 2000 Hubert Feyrer <hubertf@NetBSD.org> @@ -196,6 +196,7 @@ if [ -d pkgtools/pkglint ]; then INDEXFILE=`${BMAKE} show-var VARNAME=INDEXFILE` || fail=yes ORDERFILE=`${BMAKE} show-var VARNAME=ORDERFILE` || fail=yes BROKENFILE=`${BMAKE} show-var VARNAME=BROKENFILE` || fail=yes + BROKENWRKLOG=`${BMAKE} show-var VARNAME=BROKENWRKLOG ` || fail=yes BUILDLOG=`${BMAKE} show-var VARNAME=BUILDLOG` || fail=yes STARTFILE=`${BMAKE} show-var VARNAME=STARTFILE` || fail=yes AWK=`${BMAKE} show-var VARNAME=AWK` || fail=yes @@ -221,6 +222,7 @@ echo "SUPPORTSFILE = $SUPPORTSFILE" echo "INDEXFILE = $INDEXFILE" echo "ORDERFILE = $ORDERFILE" echo "BROKENFILE = $BROKENFILE" +echo "BROKENWRKLOG = $BROKENWRKLOG" echo "BUILDLOG = $BUILDLOG" echo "STARTFILE = $STARTFILE" echo "----------------------------------" @@ -235,6 +237,7 @@ if [ $fail = "yes" -o \ -z "$INDEXFILE" -o \ -z "$ORDERFILE" -o \ -z "$BROKENFILE" -o \ + -z "$BROKENWRKLOG" -o \ -z "$BUILDLOG" -o \ -z "$STARTFILE" -o \ -z "$AWK" -o \ diff --git a/mk/bulk/post-build b/mk/bulk/post-build index b47e1fd3fee..0d9d2dc6620 100644 --- a/mk/bulk/post-build +++ b/mk/bulk/post-build @@ -1,5 +1,5 @@ #!/usr/pkg/bin/perl -# $NetBSD: post-build,v 1.45 2004/07/15 11:57:26 grant Exp $ +# $NetBSD: post-build,v 1.46 2004/11/16 18:34:12 jlam Exp $ # # Collect stuff after a pkg bulk build # @@ -42,10 +42,11 @@ $reportf=basename($REPORT); chomp($os=`uname -s`); -# Extract the name of the files used for the build log and broken build log. +# Extract the names of the files used for the build log and broken build logs. # These have defaults set by bsd.bulk-pkg.mk and may be overridden in # /etc/mk.conf chomp($BROKENFILE=`( cd $USR_PKGSRC/pkgtools/pkglint ; $ENV{"BMAKE"} show-var VARNAME=BROKENFILE )`); +chomp($BROKENWRKLOG=`( cd $USR_PKGSRC/pkgtools/pkglint ; $ENV{"BMAKE"} show-var VARNAME=BROKENWRKLOG )`); # Also extract the names of the cache files used during the bulk build. We'll # save a copy of those to help debug if the build messed up. @@ -92,7 +93,7 @@ system("mkdir -p ${FTP}"); # Copy over the output from the build process chdir($USR_PKGSRC); -system("find . -name $BROKENFILE -print | $GTAR -T - -plcf - | (cd $FTP; $GTAR -plxf -)"); +system("find . -name $BROKENFILE -o -name $BROKENWRKLOG -print | $GTAR -T - -plcf - | (cd $FTP; $GTAR -plxf -)"); # Copy over the cache files used during the build foreach my $f ($BULK_DBFILE, $DEPENDSTREEFILE, $DEPENDSFILE, $SUPPORTSFILE, $INDEXFILE, $ORDERFILE) { diff --git a/mk/bulk/pre-build b/mk/bulk/pre-build index d14d8bf9c40..e941f9a946c 100644 --- a/mk/bulk/pre-build +++ b/mk/bulk/pre-build @@ -1,5 +1,5 @@ #!/bin/sh -# $NetBSD: pre-build,v 1.39 2004/04/19 23:09:55 seb Exp $ +# $NetBSD: pre-build,v 1.40 2004/11/16 18:34:12 jlam Exp $ # # Clean up system to be ready for bulk pkg build # @@ -30,6 +30,11 @@ if [ "$BROKENF" = "" ]; then echo "Had problems determining the name of the .broken files" exit 1 fi +BRKWRKLOG=`( cd ${PKGLINT_PKG_DIR} ; ${BMAKE} show-var VARNAME=BROKENWRKLOG )`; +if [ "$BRKWRKLOG" = "" ]; then + echo "Had problems determining the name of the .broken.work files" + exit 1 +fi BLDLOG=`( cd ${PKGLINT_PKG_DIR} ; ${BMAKE} show-var VARNAME=BUILDLOG )`; if [ "$BLDLOG" = "" ]; then echo "Had problems determining the name of the .make files" @@ -131,6 +136,7 @@ rm -fr /tmp/mod* # Clean up state files cd ${USR_PKGSRC} rm -f $BROKENF */*/$BROKENF +rm -f $BRKWRKLOG */*/$BRKWRKLOG rm -f $BLDLOG */*/$BLDLOG rm -f $STARTFILE |