* Add a trap handler to try and clean up the build if it is interrupted
by a signal (one problem with the previous version is that package builds
whice are interrupted by ptimeout because they are stuck, leave their
working files lying around in the chroot).
* Switch to NFS v3 mounts instead of v2
* Autogenerate the version string to report in uname within the chroot,
based on the version string in the head of the CVS branch being built.
* Copy packages via cp from the NFS mount, not scp.
* Require an additional <tmpdir> argument so the client knows where its
temp directory is.
* Mount the portbuild directory readonly via NFS, and copy files that
way instead of via scp, which has too much overhead
* Don't assume the script will be called from the ports directory
* Use buildenv to set environment variables
* Set LOCALBASE and X11BASE to dummy variables to prevent the ports tree
from picking up packages installed on the host system, and patch up
the generated index at the end
operations in one central place, instead of doing them piecemeal all over
the place. This also includes the ability to customize settings per
port branch (e.g. XFREE86_VERSION)
Also, instead of hardcoding values of OSVERSION and OSREL which are going
to get forgotten again, pull them out of the source tree in ${branch}/src
so they track the head of the branch.
tangled up.
* Sort the environment variables so that all of the commented out ones
are grouped together
* Reverse sense of NOPLISTCHECK -> PLISTCHECK, since it's not an option
we want enabled by default (it causes too many build failures). This
was too easy to forget when building packages 'by hand' using the parallel
makefile.
* Copy across UNAME_VERSION into the chroot area so that uname inside the
chroot reports the desired version
* Shorten timeout period from 12 hours to 4 hours to avoid delaying the builds
unnecessarily.
* Reverse sense of NOPLISTCHECK -> PLISTCHECK, since it's not an option
we want enabled by default (it causes too many build failures). This
was too easy to forget when building packages 'by hand' using the parallel
makefile.
we want enabled by default (it causes too many build failures). This
was too easy to forget when building packages 'by hand' using the parallel
makefile.
* Display correct pathnames in build progress messages
* Add a -nocdrom option to avoid the (time-consuming) clean-for-cdrom-list
target
* Remove x11/XFree86 from dummyports since we don't want to use an old
stale version of the package which never gets rebuilt
* Add comments noting that we should check for CVS conflicts in the cvs
update scripts and exit gracefully.
we want enabled by default (it causes too many build failures). This
was too easy to forget when building packages 'by hand' using the parallel
makefile.
* Don't require the script to be called from inside the branch directory;
follow standard practise and pass the branch to build as an argument.
* Populate the chroot with the BSD.local.dist mtree file
* Add whitespace for readability, and sprinkle liberally with comments
* Comment on some inscrutable parts of the script which were presumably
put there to work around a (perceived) problem, but which I can't
understand.
of just proclaiming "error(s) occurred". This should immediately identify
which port is causing the build to break (although it's a bit of a verbose
solution).
* Update the list of ports which takes a long time to build.
* Don't use a single ports collection for every port build, indirect through
${pb}/${branch}/ports so we can have different ports collections for
each branch. Add -noportscvs option to prevent cvs update of ports
collection.
* Remove 3.x as a valid branch, add 4-exp for the 4.x experimental builds
used for testing bsd.port.mk patches
* Update usage information
decide machines which should be handed new jobs. Also, at some point someone
added a note about a possible bug in the reportload script which causes
this one to fall over.
(2) (portbuild) Change no-output timeout from 1800 to 3600. Some ports
seem to actually take more than 30 minutes inside a command.
(3) (portbuild) Add -p flag to tar when extracting bindist.
(4) (makeindex) Remove the -j flag to make index, the argument was 1 anyway.
(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.
ftp site (specified in portbuild.conf). (It used to be implied by
-norestr.)
(2) Remove x11-toolkits/Motif-dummy from list of dummy ports, since
open-motif is now the default. Also gone is the MOTIF_OPEN
variable.
(3) Run the tar -czf of the ports tree and generation of CHECKSUM.MD5
in the background.
(4) Print the amount of time it took for the entire process, as well
as phase 1 and phase 2 of the compilations. (It is done by date
-r, so it will only work modulo 24 hours. Hopefully the build
will never go over 24 hours again.)
(5) Make symlink of the form [ae].${branch}.YYYYMMDD ->
[ae].${branch}.YYYYMMDDHH so we can have the simple "date" form as
well as the new "date+hour" directories for logs.
(6) Remove temporary make status files from /tmp that are over 60
minutes since the last modification. It was filling up the root
filesystem.
(7) Print out an "ls -lrt" of packages/All into logs/ls-lrt. This is
going to be used to evaluate make's job dispatch policies.
mtree outputs.
Also change the title of the file from "List of extra files and
directories" to "List of files and directories that do not match their
mtree description", which is more accurate.