LU-1199 build: Overhaul ldiskfs spec file and build process

Rename rpm packages from "lustre-ldiskfs" to simply "ldiskfs".

The make "rpm" target now depends on the "srpm", using rpmbuild
--rebuild to make the binary rpms from the .src.rpm file.  This
will help to ensure that we don't break the the source rpm again
in the future.

Bump ldiskfs version to 4.1.0 (larger than LLNL's external 4.0.x
ldiskfs packages).

Adjust Lustre's build system to explicitly run ldiskfs's configure
script and explicitly pass configure options instead of implicitly
assuming that ldiskfs uses the same configure options as lustre.

Add an "ldiskfs-devel" package, which contains all that is
necessary to build lustre again ldiskfs.

Change-Id: Ia7aa6fe31b4b9fc74599269cfbdc400cdc70bb62
LU-1199 build: Overhaul lustre spec file and rpm build process

- Make it possible to override Requires and BuildRequires at
  rpmbuild time.
- Use rpmbuild --with/--without parameters.
- Group configuration settings for each distro into
  clear sections at the top of the spec file, rather than
  strewn throughout the file.
- Eliminate all configure_args parsing.  Instead explicitly
  pass arguments to rpmbuild as needed.
- Improve release string handling.  No more stray underscores
  in source rpm name!
- Don't include kernel string in version of source rpm.
- "make rpms" now employs "make src" to first build the
  source rpm.  This will help enforce disipline in keeping
  the source rpm rebuildable.

Change-Id: Id0612ade9f170d84518f01d4e8de654a7ba8af88
Signed-off-by: Christopher J. Morrone <morrone2@llnl.gov>
Test-Parameters: fortestonly
LU-1199 build: Clean out the build directory

Clean up the build directory.  Move in the direction of reserving
"build/" for the special-purpose Makefile that lives there.
Eventually we could rewrite the autoconf tests to eliminate that
Makfile, and the build directory could disappear altogether (after
finding homes for anything else that is left).

The autoconf m4 file move into a top level "config" directory.

Most other things that have moved are put in the new "contrib"
top-level directory.  For instance, "contrib/lbuild" contains
all of the lbuild-related files, and "contrib/git-hooks" contains
the git hooks for lustre developers.

Most of the moved files were unchanged, however the lbuild scripts
needed some tweaking to deal with the new location.

Because of the way that Intel's build farm and git hooks expect to
find certain files in fixed locations I have had to leave a few
symlinks in place that point to the new locations.

Change-Id: I04dc529d4f4060b892e1e4eaa8613bbc3337c414
Signed-off-by: Christopher J. Morrone <morrone2@llnl.gov>
LU-1199 lbuild: Fix error handling

Improper grouping of expressions in the error() function meant
that even a simple "lbuild -h" would trigger a backtrace, and email to
someone at whamcloud.com.  That is fixed here.

Also stop sending email to a static email address on errors.

Also fix a minor typo.

Change-Id: I5a3f6131baaadc9dba23414e9e959f72fbda2679
Signed-off-by: Christopher J. Morrone <morrone2@llnl.gov>
LU-1199 lbuild: Remove obsolete CVS functionality

Remove code from lbuild that is obsolete now that CVS is no longer
used by the Lustre project.  The following three command line
parameters are no longer used:

  -d
  --disable-datestamp
  --tag

The former two were removed completely.  The --tag remains, but
is now ignored by lbuild (except that is prints a warning about
the option being deprecated).   We need to allow --tag for now
to accomodate the Intel build farm which always passes in the
bogus option "--tag foo".

Change-Id: I68636f599937cec2ea9298a395df0c875762215e
Signed-off-by: Christopher J. Morrone <morrone2@llnl.gov>
LU-1199 lbuild: Clean up path canonicalization

Simplify the canonicalization of paths through the use of readlink.

Change-Id: I51682f78b76efd790ac3829059de1f1f8702fe23
Signed-off-by: Christopher J. Morrone <morrone2@llnl.gov>