deprecations, defaults, and reassignments

Add mechanisms by which to support the expression of deprecations, default
values, and reassignments as part of the config. This mostly involves adding
additional constants to the params.rb file, and new methods to handle them in
config.rb. This is largly to replace the requirement for build.rake and
10_setupvar.rake.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Remove utils that have been moved into lib/packaging/utils

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Replace all utilities with their Pkg::Util counterparts
Add load_overrides method for PARAMS_FILE overrides

Several workflows rely on being able to supply an optional yaml
parameters file that overrides all set values with its data. This has
always been supplied as an environment variable, "PARAMS_FILE." To
honor this, we have a method in config to override values as
expected.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Add a variable reassignment for pe_name to project

This was in 20_setupextravars.rake, and is used for repos with an identity
crisis, e.g. pe-puppetdb vs puppetdb.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
update 20_setupextravars.rake for new librarification

We've moved the variable reassignment of pe_name => project into the
reassignments in the library. We don't need to export all of our instance
variables anymore, because we're using bindings wherever we need them, and
finally we don't have to haphazardly use a bunch of manual environment variable
overrides - we have a method for that now.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Replace all occurrences of @build. with Pkg::Config

Except for the few methods of @build, which were params, set_params_from_hash,
params_to_yaml, print_params, and set_params_from_yaml, which are replaced with
their correspending Pkg::Config methods.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Remove 10_setupvars.rake, this is handled by config now
Rename to 20_setupextravars to load_extras, since that's all it does now
Build.rake is now only the build from params rake task

All the other facilities are done by Pkg::Config.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Remove template.rake, this functionality  is now provided by the tar lib
Fix ordering problem in loading of variables

This commit updates the ordering of loading data into Pkg::Config. The prescribed order is:

1) Load default values we establish in the packaging repo

2) Load values set withing the project_data.yaml and build_defaults.yaml files

3) Load versioning data obtained via `git`

4) Load override data obtained via ENV['PARAMS_FILE']

5) Load data obtained via environment varialbes

6) Load data obtained by assigning old variable values to their new counterparts

This order reflects precedence via ordering - the things loaded last override
the things loaded first.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Only require the rpm tool if we know we're on an rpm system
Update templates to use Pkg::Config object
Move project root setting into defaults, and don't allow its override

since it's a default, it belongs in the load_defaults method. Also, it is
absolutely essential that the overrides do not override the project_root
setting, because this is environment-specific, and any value in a params file
is going to be wrong. Thus, if we have a project root before we begin
overriding, we save it and restore it after overrides.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>