(1) cvsup
(2) run cvs update on the ports and doc trees
(3) generate new index
(4) generate new duds list
(5) move old packages and distfiles out of the way
(6) build packages
(7) build packages again (to salvage those died with transient errors)
(8) generate restricted list
(9) generate no-cdrom list
Steps (3)-(9) are repeated for 4-current and 3-stable.
delete after building is done. Run mtree regardless of the directory
exists or not. Do not use local copy of dependency packages -- it is
too hard to maintain consistency -- always use one on master.
doesn't complete within the specified timeout period.
I tried to do this from within the pdispatch script, but I couldn't
get all the auxiliary processes to be killed correctly so implemented
this as a separate script in perl.
that is built. This saves a lot of time, especiall when the
parallelism (the number of jobs per machine, not the number of
machines) is low.
However, the build script only blows away /usr/local and
/usr/X11R6, so if there is a port that does some nasty things
outside that area, all bets are off.
(2) Better load balancing. Now, each machine reports its own
load in a form of a text file, which the master merely aggregates
to pick the lowest-loaded machine(s). Other than generally
running faster (and more up-to-date) under loaded conditions, the
master script will no longer hold up until a timeout when a
machine goes down.
behind. Useful for debugging.
Touch package on master after copying it back. This will avoid synchronization
problems when the machines' clocks are wildly skewed.
Remove log from master when build is successful. No need to keep around
transient error logs.
Tools/portbuild for details.
Note that this is still a major work in progress. I probably forgot
something but I need to go to sleep. At least it works here (most of
the time :).