ubc-master.cfg:  set python mode for emacs
ubc-master.cfg: noop:  rewrap comments to fit in 80 columns

Sorry.  :P
.gitignore:  initial check in

- ignore config file
- ignore buildbot create-master artifacts
- ignore editor droppings
ubc-master.cfg-sanitized:  prettify 'addStep' lines; un-hardcode repo config
ubc-master.cfg:  load host, builder, auth config from yaml file

This commit pulls slave names and passwords, builder config names, and
builder config to slave mappings out of master.cfg and into a yaml
file.

The intent:

- yaml is easier to read and write than python
- yaml is less verbose than the equivalent python-language master.cfg
- yaml is easily loaded into python dict and list objects (one LOC!)
- with passwords in a separate config file, master.cfg doesn't need to be
  sanitized to live in a publicly-scrutized VCS repo
- if desired someday, the yaml file can be read/written by a separate
  script for e.g. automated slave addition or automated addition to a
  monitoring system
ubc-master.cfg:  add debug output
Rename ubc-master.cfg-sanitized -> master.cfg; commit sample config

- master.cfg is now sanitized, so put it in place

- add a sample yaml config matching the pre-yaml config, and with
  RH-derivatives added
Fix pruning of build configs when build slaves are missing

Configuration is less irritating if a temporarily missing slave
doesn't require also commenting out builders with only missing
slaves.  Simply remove builders with missing slaves and print a
warning in case the admin really does need to go prune the config.
.gitignore runtime artifacts
.gitignore all directories

Buildbot creates a directory for each builder config.  Instead of
updating .gitignore each time a config is added to config.yaml, just
ignore all directories.  This might prove to be too much of an
assumption later on; we shall see.
Mammoth, unhygeinic commit that touches everything, yuck

I didn't follow Linus's advice, 'commit early, commit often'.  Sorry.

Move change sources into config file:
- currently only supports git poller

Move factory definitions into config file:
- Pull shell code out into buildsteps.sh:
  - shell script called as 'buildsteps.sh <step>'
  - contains Kent's original steps, less the initial git steps
  - if config file build factory has the optional 'buildsteps-script'
    attribute, copy that to build slaves in first step
- Move build steps into config file:
  - 'source.git' type step
  - 'script' (default) type runs buildsteps script with step name as
    argument
  - 'script.tty' type does the same, but with a tty

Schedulers:
- FIXME this is a hack until we have a more complex example to model
- For now, each change source gets two hard-wired schedulers, 'all'
  and 'force'
- Each scheduler gets all builders
- Both of the above may need to be configurable from config file,
  we'll see

Odds and ends:
- remove obsolete 'repo' configuration dict from master.cfg
- update config.yaml.sample examples and comments
- add debugging flag and print stuff when set
buildsteps.sh:  sourcetree step:  rm -rf old source directory
Add local git repo HOW-TO and small changes to config.yaml.sample
buildsteps.sh:  exit with meaningful message and correct code
buildsteps.sh:  look for tcl/tkConfig.sh in /usr/lib64

LinuxCNC's configure.in needs update with RH locations
master.cfg: run buildsteps.sh with bash

The 'buildsteps-script' step doesn't preserve execute permissions on
buildsteps.sh, so explicitly run the script with bash.
HOW-TO-local-git-repo:  add forgotten 'git update-server-info' command

This is obviously an afterthought, and needs to be rewritten after
building the repo from scratch so that the order of steps can be
correctly explained.
multiple single branch schedulers when multiple branches in changesource

Update config.yaml.sample
HOW-TO-local-git-repo:  fix the umask problem; hack for branch access

FIXME the branch names need to be fixed.
fix source tree removal in sourcetree step