fastbulk - Commit to /usr/src/test/fastbulk
authorMatthew Dillon <dillon@apollo.backplane.com>
Sat, 19 Nov 2011 21:54:49 +0000 (13:54 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sat, 19 Nov 2011 21:54:49 +0000 (13:54 -0800)
commitb050e616f2ee6454dd82147d049d28ad6bb8a38a
tree07558d8934618e1ce30bdac759fa864a4b0d16c1
parentebea24c30d6cabf9ec024121e9fb73bcc0b1e7a8
fastbulk - Commit to /usr/src/test/fastbulk

* Commit the fastbulk (fast pkgsrc bulk building system) that I was
  working on late last year so others can mess around with it.

* This is a set of scripts that attempt to figure out pkgsrc tree
  dependencies and then run as many package builds in parallel as
  possible, keeping track of completions which effect other dependencies
  in order to keep as many concurrent (up to NPARALLEL) builds going as
  possible.

* Once the source archives get synchronized concurrency is actually limited
  more by the sludgepile that is the pkgsrc/bmake system which we have to
  use to figure out the dependencies in the first place.  It takes a bit
  for enough of the dependency tree to build for concurrency to ramp up
  but it does pretty well once the core packages that everyone else depends
  on have been built.

* Easy tracking of the state of the build via per-package log files and
  status information in /build/fastbulk/root/tmp/logs/{good,bad,run}.
  Log files for currently running builds are placed in run and then
  moved to good or bad when the build completes.

* Remaining issues include multi-dependencies (e.g. when multiple versions
  of the same package is available for install), because other packages in
  the tree might depend on different versions of the same package,
  missing dependencies, and other conflicts.
test/fastbulk/Makefile [new file with mode: 0644]
test/fastbulk/dobuild [new file with mode: 0755]
test/fastbulk/dochanges [new file with mode: 0755]
test/fastbulk/fastbulk.c [new file with mode: 0644]
test/fastbulk/getpkgsrcdir.c [new file with mode: 0644]