(maint) Add ruby-augeas to Gemfile and Travis for more test coverage
(#22744) Filter virtual resources in the static compiler

Previously (on Lost), the static compiler was directly creating and
invoking the regular compiler and then modifying the file resources to
get the desired behavior. Because the static compiler was directly
invoking the regular compiler, it was not invoking all the methods that
would normally get called when the regular compiler was called by the
indirector.

This commit resolves this problem by making the static compiler inherit
from the regular compiler instead of delegating to the compiler. If
there are future changes to how the indirector invokes termini, the
static compiler will still be able to generate catalogs in the same
manner as the regular compiler.

Original patch by Chris Spence <chris.spence@puppetlabs.com>
(#23219) - Fix support of extra arguments in windows service

Without this patch, extra arguments specified in the service
definition are not parsed correctly by the service class.
(PUP-1158) Only output load warning when file given by user has an error

There are two optimised paths through the Augeas loading code:

  * when context parameter is given
  * when lens and incl parameters are given

In the first case, all files for the lens are still loaded, including the one
the user intends to edit.  In the second, only one file and lens is loaded.

When optimising, a warning is logged for the user if it's thought that loading
of the user's file has failed.  Previously this code would output the warning
if there were any errors at all, so a file handled by the same Augeas lens
that errored would trigger the warning, even though the targeted file was fine.

Now errors for the specific context given by the user are checked in order to
issue the warning message.
Merge pull request #2061 from domcleal/tickets/master/17486-augeas-warn-same-lens

(PUP-1158) Only output load warning when file given by user has an error

Reviewed in PR Triage on December 18th, 2013 (Adrien, Dominic, Rob, Josh, Kylo). Looks good. Thanks for the fixes!
(maint) Pin beaker to 1.2.0
(Maint) Move to newer beaker

rbvmomi released a 1.8.0 that broke ruby 1.8 compatibility. We tried
pinning to an older beaker, but that wouldn't have worked because of the
way beaker depends on rbvmomi. Beaker 1.3.1 pins itself to an rbvmomi
that we should be able to use and so using 1.3.1 should solve the issue.
Merge branch 'stable'

* stable:
  (Maint) Move to newer beaker
  (maint) Pin beaker to 1.2.0

Conflicts:
	acceptance/Gemfile
(Maint) Revert including augeas

Including augeas in the tests requires that we have libaugeas installed
on any machine that is going to run the tests with the :extra group. Too
many of our internal systems don't have that kind of setup. It will have
to be up to the maintainer of the augeas code (likely Dominic Cleal) to
make sure that the augeas code works until we can get more complete
testing infrastructure in place.

The ruby-augeas gem can be included from a Gemfile.local for anyone who
wants to develop against augeas in the meantime.
(PUP-1099) Fix incorrect permissions in RPMs

The RPM spec template uses extremely restrictive permissions for `log`
and `lib` directories. These permissions were being incorrectly applied to
`examples` during packaging. This corrects that problem by resetting
default attributes after restricting `log` and `lib` directories.
(#23219) Merge branch 'ticket/#23219'
(PUP-665) Allow settings to be undefined

Setting a value to nil used to result in falling back to the default (or
whatever came later in the lookup chain). This behavior was lost when
the settings were pulled apart into multiple classes to handle the
lookup. The error showed up in tests for stdlib that use rspec-puppet,
which depended on the "nil is default" behavior.
Merge pull request #2174 from zaphod42/maint/master/allow-settings-to-be-undefined

(PUP-665) Allow settings to be undefined
(packaging) Update PUPPETVERSION to 3.4.0
Merge tag '3.4.0'

3.4.0

* tag '3.4.0':
  (packaging) Update PUPPETVERSION to 3.4.0
(PUP-665) Setting nil reverts to default

The behavior of looking up settings was not entirely right from the
previous commit. The true behavior is:
  * Search through layers in the order of [cli, memory, environment,
    run_mode, main, application_defaults]
  * Find the first layer that has ever had the setting manipulated for
    it.
  * If the value for that layer is not nil use that value.
  * If the value for that layer is nil use the value from puppet's
    defaults.

This commit restores that behavior and adds a test to check that it
happens.
Merge tag '3.4.0' into stable

3.4.0

* tag '3.4.0':
  (packaging) Update PUPPETVERSION to 3.4.0
Merge pull request #2175 from zaphod42/maint/master/allow-settings-to-be-undefined

(PUP-665) Setting nil reverts to default
(maint) Use internal rubygems mirror during CI bootstrap
(maint) Set gem mirror conditionally