diff options
author | Satoshi Asami <asami@FreeBSD.org> | 2001-01-21 01:02:13 +0000 |
---|---|---|
committer | Satoshi Asami <asami@FreeBSD.org> | 2001-01-21 01:02:13 +0000 |
commit | f8e206ffe7fb883585dd2b71d18b9949c2bd40c6 (patch) | |
tree | b5cc8e40d9b76004b92a935d6b474157244dea83 | |
parent | Mark FORBIDDEN; local buffer overflows yielding user nobody. (diff) |
A few new features:
(1) The script now assumes make(1) knows how to handle long dependency
chains properly. quickports is a list of ports that take a
long time to build by thesmelves (not ports that have long
dependency chains). The script adds several extra dependency
levels to the generate Makefile for those ports to make their
dependency chains longer.
(2) Use -R flag to cvs. Comment out the cvsup part.
(3) Preserve error messages for ports that didn't build the first
time around but did build on the retry.
(4) Record the package's timestamps in the log directory by doing
an "ls -asFlrt" in the packages/All directory.
(5) Add a little sleep after two background jobs so outputs won't
be garbled.
Notes
Notes:
svn path=/head/; revision=37384
-rwxr-xr-x | Tools/portbuild/scripts/dopackages | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/Tools/portbuild/scripts/dopackages b/Tools/portbuild/scripts/dopackages index 9a0eee711150..6118bdfd1eef 100755 --- a/Tools/portbuild/scripts/dopackages +++ b/Tools/portbuild/scripts/dopackages @@ -8,8 +8,8 @@ pb=/var/portbuild # packages for dependencies only dummyports="x11/XFree86" -# packages with very long dependency lists -- try to start building these first -quickports="x11/kde2 x11/gnome" +# packages that take very long to build -- try to start building these first +quickports="lang/ghc games/civ2demo games/rt2-demo x11/XFree86-4 editors/openoffice" status=${pb}/status @@ -248,15 +248,15 @@ fi cd ${pb}/usr/ports if [ "$nocvsup" = 0 ]; then - echo "================================================" - echo "running cvsup" - echo "================================================" - su ${user} -c 'cvsup -g -L 0 /etc/supfile.cvsup' - date > ${pb}/cvsdone +# echo "================================================" +# echo "running cvsup" +# echo "================================================" +# su ${user} -c 'cvsup -g -L 0 /etc/supfile.cvsup' echo "================================================" echo "running cvs update on /usr/ports" echo "================================================" - su ${user} -c 'cvs -q update -d -P' + su ${user} -c 'cvs -qR update -d -P' + date > ${pb}/cvsdone echo "================================================" echo "running make checksubdirs" echo "================================================" @@ -265,7 +265,7 @@ if [ "$nocvsup" = 0 ]; then echo "running cvs update on /usr/opt/doc" echo "================================================" cd ${pb}/usr/opt/doc - su ${user} -c 'cvs -q update -d -P' + su ${user} -c 'cvs -qR update -d -P' fi if [ "$nocvs" = 0 ]; then @@ -273,7 +273,7 @@ if [ "$nocvs" = 0 ]; then echo "running cvs update on /${branch}/src" echo "================================================" cd ${pb}/${branch}/src - su ${user} -c 'cvs -q update -d -P' + su ${user} -c 'cvs -qR update -d -P' fi # this one not in background to check return status @@ -322,10 +322,14 @@ if [ "$nodummy" = 0 ]; then done fi -quickpkgs="" +# hack to extend length of dependency chain to build quickports first for i in ${quickports}; do if [ -d $i ]; then - quickpkgs="${quickpkgs} $(cd $i; make package-name).tgz" + quickpkg="$(cd $i; make package-name).tgz" + echo "all: dummy1-$quickpkg" >> ../../${branch}/Makefile + echo "dummy1-$quickpkg: dummy2-$quickpkg" >> ../../${branch}/Makefile + echo "dummy2-$quickpkg: dummy3-$quickpkg" >> ../../${branch}/Makefile + echo "dummy3-$quickpkg: $quickpkg" >> ../../${branch}/Makefile else echo "quick port directory \"$i\" does not exist -- skipping" fi @@ -355,6 +359,7 @@ if [ "$nobuild" = 0 ]; then mkdir -p ${pb}/archive/errorlogs/e.${branch}.${date} ln -sf ${pb}/archive/errorlogs/e.${branch}.${date} ${pb}/${branch}/errors ln -sf e.${branch}.${date} ${pb}/archive/errorlogs/e.${branch}.${shortdate} + mkdir -p ${pb}/${branch}/errors/old-errors rm -rf ${pb}/archive/errorlogs/a.${branch}.${date} ${pb}/archive/errorlogs/a.${branch}.${shortdate} mkdir -p ${pb}/archive/errorlogs/a.${branch}.${date} ln -sf ${pb}/archive/errorlogs/a.${branch}.${date} ${pb}/${branch}/logs @@ -381,7 +386,7 @@ if [ "$nobuild" = 0 ]; then echo "================================================" echo "started at $(date)" phase1start=$(date +%s) - make -k -j$count ${quickpkgs} all > ../../make.0 2>&1 </dev/null + make -k -j$count all > ../../make.0 2>&1 </dev/null echo "ended at $(date)" phase1end=$(date +%s) echo "phase 1 took $(date -u -j -r $(($phase1end - $phase1start)) | awk '{print $4}')" @@ -393,6 +398,7 @@ if [ "$nobuild" = 0 ]; then echo "The following port(s) timed out:" grep -E '(ptimeout|pnohang): killing' make.0 | sed -e 's/^.*ptimeout:/ptimeout:/' -e 's/^.*pnohang:/pnohang:/' fi + ls -asFlrt ${pb}/${branch}/packages/All > ${pb}/${branch}/logs/ls-lrt-1 cp -rp errors old-errors cd ${pb}/${branch}/old-errors ${pb}/scripts/processlogs @@ -417,7 +423,7 @@ if [ "$nobuild" = 0 ]; then echo "================================================" echo "started at $(date)" phase2start=$(date +%s) - make -k -j$count ${quickpkgs} all > ../../make.1 2>&1 </dev/null + make -k -j$count all > ../../make.1 2>&1 </dev/null echo "ended at $(date)" phase2end=$(date +%s) echo "phase 2 took $(date -u -j -r $(($phase2end - $phase2start)) | awk '{print $4}')" @@ -462,6 +468,7 @@ if [ "$nobuild" = 0 ]; then for i in *.log; do if [ ! -f ../errors/$i ]; then new="$new $(basename $i .log)" + cp -p ${i} ${pb}/${branch}/errors/old-errors fi done if [ "x$new" != "x" ]; then @@ -469,6 +476,7 @@ if [ "$nobuild" = 0 ]; then fi archiveports ${pb} ${branch} & generatemd5 ${pb} ${branch} & + sleep 5 echo "================================================" echo "new failures" echo "================================================" |