(PUP-2432) Simplify spec_helper in module skeleton
(PUP-2871) Add :install_options and :uninstall_options to the pacman provider

Without this patch, a user unfamiliar with the pacman provider might write
attempt to add flags to install and uninstall, not knowing that they will fail.
This patch adds support for these two flags to ensure a more cohesive experience
across puppet.
(PUP-2878) file conflict upgrading from 2.7.26 to 3.6.2

Currently, upgrades from 2.7.26 to 3.6.2 break because of a file
conflict. It seems that as of Puppet 3.3.0, the manpages changed from
being owned by the puppet package, to being owned by the puppet-common
package. This change was initially done to allow upgrades from Debian
packages to ours. However, changing which package owns a given file
makes upgrades difficult. This commit adds in conflicts to allow smooth
upgrades from puppet packages prior to the manpage change to the current
version.
(maint) Add real case for autosign cert generation test

Nate Wolfe noticed what looks like a copy paste error in my original
ssl/puppet_cert_generate_and_autosign.rb test that was repeating the
cert generate with autosign false and dns_alt_names case for the
autosign true and dns_alt_names case. This commit replaces that with
tests using autosign true, which on master with ca fails, and requires
manual signing with --allow-dns-alt-names flag.
(PUP-2918) Clarify missing Modulefile error

Prior to this commit, when building a module without a Modulefile or metadata.json,
the builder would blow up with a cryptic 'Unable to find module root at DIRECTORY'
It's not entirely clear what that means to an end user.
This commit clarifies that metadata.json or a Modulefile are what need to be found
at the module root. Also removes some duplicated logic for checking module root.
(doc) Document user :system param only applies on create
(maint) Always pass an arg to shared behavior block
(maint) Require rspec/mocks over deprecated spec/mocks
Merge pull request #2831 from melissaanne/ticket/stable/fix-conflict

(PUP-2878) file conflict upgrading from 2.7.26 to 3.6.2
(maint) Never require rspec/mocks

We use mocha for stubbing and mocking; requiring the rspec mocks as well
will break things in RSpec 2.14.
(maint) Avoid rspec examples using variable behavior

Given an object with an attr_accessor and using an example shortcut like so:

    subject { metadata.to_hash }

    its(:keys) do
      subject.sort.should == %w[ name version author summary license source issues_url project_page dependencies ].sort
    end

The value of subject in the example varies between RSpec 2.11 and 2.13.
This commit removes the shortcut in favor of a slightly longer but more
compatible test that explicitly invokes the #keys method and does an
expectation on that.
(maint) Remove deprecated `.to_not raise_error(args)` calls

From RSpec:

    DEPRECATION: `expect { }.not_to raise_error(SpecificErrorClass, message)` is deprecated. Use `expect { }.not_to raise_error` (with no args) instead.

This commit removes all args from `.to_not raise_error` expectations.
(maint) Remove nonfunctional directoryservice test

It's not possible to test
Puppet::Provider::NameService::DirectoryService without stubbing out a
huge amount of code, which is done by a different test. The removed test
behaved almost identically like the following test so we can remove this
without losing test coverage.
(maint) Replace invocations of `subject` and `let` in `before(:all)`
(maint) Update rspec version to 2.14
(maint) Use Struct::Passwd instead of Etc::Passwd

The return type of Etc.getpwent (and friends) is available as
Etc::Passwd in ruby 1.9.3 and later. However that constant doesn't exist
in ruby 1.8.7. However the docs refer to the type as Struct::Passwd,
which turns out to be available on 1.8.7, 1.9.3, 2.0.0, and 2.1.0.
(PUP-2078) Clarify --force behavior

Prior to this commit it was unclear that --force also implies --ignore-dependencies.
This commit clarifies that --force does also imply --ignore-dependencies.
(PUP-2944) Use osfamily to choose yum as a default

This commit changes the defaultfor from using the operatingsystem fact
to the osfamily fact. This is done so that we do not have to duplicate
effort of all the RedHat derivatives that use yum.

Signed-off-by: Charlie Sharpsteen <chuck@puppetlabs.com>
(PUP-2732) Restrict Posix exec tests to POSIX env

 - Instead of trying to simulate a POSIX environment on the Windows for
   the sake of tests against a provider that never runs on Windows,
   exclude the tests when Puppet.features.posix? is not true.
 - Given that these tests will no longer execute on Windows, the usage
   of expand_path is no longer necessary, nor are any of the
   Puppet.features.microsoft_windows? guards
Merge pull request #2884 from Iristyle/ticket/master/PUP-2732-fix-POSIX-exec-specs-for-Windows

(PUP-2732) Restrict Posix exec tests to POSIX env