This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.
Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.
list generation at the same time we're setting up the clients.
duds generation is intentionally separate. If we get an error back
from that one (usually means someone committed a Makefile with a
syntax error), abort the whole thing so we won't generate a faulty
index and destroy the stuff that's been builtbefore.
Lockfile handling is now moved to dopackages2 so we won't overwrite
the build.log file just to say "skipped".
Generate INDEX right after packages are built, from the same INDEX
that was used to build them.
Compare the packages from this build with the previous one and report
what's missing and whatnot.
(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.
(2) New variable USE_ZIP -- will change EXTRACT_SUFX to ".zip" and
extract commands/arguments accordingly.
Submitted by: jseger
(3) Use ${GREP} in some places where grep was used.
(4) A little update to the MASTER_SITES_GNU list.
Submitted by: cpiazza@home.net
(5) New target clean-for-cdrom-list and clean-restricted-list -- will
print out commands to delete un-cdromable or unredistributable
files. Save them into a shell script for later use.
(6) Add CXXFLAGS="${CXXFLAGS}" to configure's environment.
Submitted by: reg@shale.csir.co.za
PR: 11353 (part 3/3)
(7) Print out a warning if you try to install without being root.
Abort if ${PREFIX} is not writable.
(8) Add web site to INDEX as tenth field.
Reviewed by: wosch, steve, scrappy
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 :).