(#14822) Re-evaluate features if they previously were false

Allow features to be re-evaluated each time they are checked, if they
previously evaluated to false.  This allows for providers by features to have
dependencies installed during a run and then for the feature state to change
from false to true.

Caching of feature results that were previously true has been kept.  Caching of
blocks used to evaluate features remains unaffected and are still run only once.
(#14822) Use feature confine for feature tests during run

Fixes two providers to use the "confine :feature" statement, allowing for the
features to be re-evaluated during a run instead of only once.
(#16376) Fix rails compatibility layer for activerecord < 3.0

Previously an alias was attempted between scope and named_scope to allow older
activerecord versions (< 3.0) to work with the inventory service while also
supporting modern activerecord. The scope alias failed because
Puppet::Rails::InventoryNode inherits from ActiveRecord::Base, which has a
scope method already. So activerecord's scope method is found instead of the
intended alias target. This commit removes the alias and simply switches on
activerecord version to use the correct scope (AR >= 3.0) or named_scope (AR <
3.0) method.
fail better in package repo rake tasks

This commit modifies the top level Rakefile to only
load the packaging repo yaml file if it exists, as
well as provide some error handling for other unwanted
conditions that may arise as a result of trying to
set up the packaging repo.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Merge pull request #1171 from MosesMendoza/maint/2.7.x/cleanup_package_repo_rake_tasks

fail better in package repo rake tasks
Set ca_location in ca face

The ca face was not properly setting ca_location, and therefore not setting
the terminus correctly for Puppet::SSL::Certificate or CertificateRequest.
Because of this, the ca face would not read all available certificates, for
example certs waiting to be signed.
Update puppet.spec, bump required ruby to 1.8.7

Telly drops support for 1.8.5, moving the minimum required ruby to 1.8.7. For
el5, ruby 1.8.7 can be found in our devel repos at
yum.puppetlabs.com/el/5/devel/$ARCH until we release Puppet 3.0, at which time
they will move into our dependencies repo at
yum.puppetlabs.com/el/5/dependencies/$ARCH.
Update docs w/ new default logoutput value from ticket #10907

This commit updates the inline parameter docs to match a change that was
previously merged.
Remove CHANGELOG file

This commit removes the CHANGELOG file in the top level
of puppet, which only contains commit hashes/ messages
from the previous releases, and is of debatable utility.
This information can be gleaned easily from a git log,
and is not of much use without git. Removing it removes
yet another manual process from the releasing of puppet.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Merge pull request #1175 from nfagerlund/maint/10907/update_logoutput_docs

Update docs w/ new default logoutput value from ticket #10907
Remove sbin references from install.rb

In 3.x, all sbin files were removed, so install.rb no longer needs to reference
those variables or accept those flags. This commit removes the --sbindir flag
as well as all other mention of sbin.
Replace Config::CONFIG with RbConfig::CONFIG

Config has been deprecated in favor of RbConfig, so this replaces all
occurences of Config with RbConfig.
(#13435) Use digest algorithm from CSR for fingerprint

Since the digest algoritm changed between Puppet 2.7 and 3.0 from MD5 to
SHA256, there was a problem when submitting a CSR from a 2.7 agent to a 3.0
master. The agent would display the fingerprint using MD5, and the master
would display the SHA256 fingerprint, making it impossible to verify using the
normal puppet commands. This makes the default digest algorithm for each CSR
the algorithm that was used to generate the signature. This will be MD5 for a
CSR generated on 2.7, and SHA256 for a CSR generated on 3.0. When showing a
fingerprint puppet will now always print the digest algorithm that was used.
All fingerprinting commands should also accept a --digest option to specify
the digest.

It also significantly refactors and unifies the code used to generate and
display fingerprints. It introduces a new class, Puppet::SSL::Digest, to
encapsulate digest data, and uses this everywhere a digest is needed.
(#13435) Use new digest code when generating a CSR

This uses the Puppet::SSL::Digest class to show the digest and digest
algorithm used when generating a CSR. This also refactors the
CertificateRequest specs to significantly reduce stubbing.
Add --ruby flag to install.rb

If the ruby used to install puppet isn't the ruby desired to execute puppet,
this flag will allow users and packages to set their own ruby. This is
particularly useful when working with ruby and alternatives.
Update debian ruby dependencies to include 1.9

The previous set of debian dependencies were all ruby 1.8 specific. Puppet 3.x
has full ruby 1.9 support, so this commit adds the option of ruby 1.9 for all
of Puppet's dependencies. It moves the sitelibdir to be vendordir, which is the
current debian standard for ruby projects with ruby support for both 1.8 and
1.9. It also updates all of the dependencies to be just ruby instead of ruby1.8
| ruby 1.9.1 and adds 1.9 equivalents for all ruby libraries. This commit also
drops rails, activerecord, and mongrel and adds the suggestion of
puppetdb-terminus instead.
Merge pull request #1180 from haus/maint/3.x/update_install_rb_for_3x

Maint/3.x/update install rb for 3x
Merge pull request #1173 from haus/maint/3.x/add_19_deps_to_debian

Update debian ruby dependencies to include 1.9
Merge pull request #1176 from MosesMendoza/maint/3.x/remove_CHANGELOG_file

Remove CHANGELOG file
Merge pull request #1174 from haus/maint/3.x/bump_required_ruby_to_187

Update puppet.spec, bump required ruby to 1.8.7