(#13888) Fix self.instances for systemd service provider

Previously, attempting to run puppet resource service
on Fedora 16 resulted in a stack trace.

This commit resolves the issue so that self.instances should
work for systemd providers. The issue was that the instances
method was returning an Array of strings. This commit updates the
method to correctly return an Array of Provider instances.
maint: Fix pkg_spec test

The pkg_spec test meant to compare different hashes that were created
like

    Hash.new(:key1 => val1, :key2 => val2)

At least on ruby 1.9 this will always return an empty hash so the spec
tests didn't test correctness at all.

The fix uses just {:key1 => val1, :key2 => val2} to create the different
hashes so the comparsion does make sense again.
(#11004) Support Solaris 11 output in pkg package provider

Solaris 11 has merged the status field and the flag field when running
pkg list. So instead of

    SUNPython  2.5.5-0.111  installed  ----

a line may now look like

    compress/zip  3.0-0.175.0.0.0.2.537  i--

Change the regex in the parsing method to be able to correctly
interpret the output on Solaris 11 boxes
Merge pull request #714 from daniel-pittman/maint/2.7.x/fix-busted-colour-tests

Maint/2.7.x/fix busted colour tests
(maint) Fix destinations_spec failure on windows

The CI spec tests for Puppet 2.7.x on windows are failing.  This is bad.

The reason they're failing is because we recently patched Puppet 2.7.x
to add a new feature, Puppet.features.ansicolor?  If this feature is
true then Puppet will output with ANSI colors.  If false, bare strings
are sent.

The existing destinations_spec test wasn't updated to reflect this new
feature.  The existing spec test assumes ANSI sequences will always be
sent if Puppet[:color] = true, but this is no longer the case because we
only send ANSI sequences if Puppet[:color] = true and
Puppet.features.ansicolor? is truthy.

This patch fixes the problem by stubbing Puppet.features.ansicolor? to
be true, matching up the spec expectation to the behavior of the system.
Just change Puppet settings in tests, rather than stubbing.

I'm following Daniel's lead from cde3bee0 on this one.

Stubbing Puppet.settings can cause bad side effects so let's just set
the setting and let the spec helper reset the settings system for us.
Merge remote-tracking branch 'jeffmccune/fix/2.7.x/specs_fail_without_win32console_gem' into 2.7.x

* jeffmccune/fix/2.7.x/specs_fail_without_win32console_gem:
  Just change Puppet settings in tests, rather than stubbing.
  (maint) Fix destinations_spec failure on windows

Signed-off-by: Jeff McCune <jeff@puppetlabs.com>
(#13956) Fix failing spec tests

The tests fail if the win32console gem isn't installed.  This patch fixes the
problem by stubbing out Puppet.features.ansicolor?
Merge branch 'fix/2.7.x/13956_fix_spec_tests_when_win32console_is_missing' into 2.7.x

* fix/2.7.x/13956_fix_spec_tests_when_win32console_is_missing:
  (#13956) Fix failing spec tests

Signed-off-by: Jeff McCune <jeff@puppetlabs.com>
(#11004) Fix regex for pkg provider line matching

The pkg provider uses the output of `pkg list` to check if a package is
present on the system. On solaris 10 the output showed a dedicated
`status` field to reflect `installed` or `known`. On Solaris 11 this
field is not present anymore, so it was marked as an optional field in
the regex that is used to parse the `pkg list` output. The field
delimiter (\s+) however were notaround not marked as optional so while

  library/python-2/pycurl-26 7.19.0.1-0.175.0.0.0.2.537  i--

worked

  library/python-2/pycurl-26 7.19.0.1-0.175.0.0.0.2.537 i--

did not (notice there is only one whitespace between version an flags).

Modify the regex so the second example is also interpreted correctly.
(#13651) Use magenta, not purple in Facter::Util::Colors

This replaces all cases of the term 'purple' for the more standard 'magenta',
as per the naming used in most ANSI escape code charts.
Merge pull request #631 from kbarber/ticket/2.7.x/13651-magenta_not_purple

(#13651) Use magenta, not purple in Facter::Util::Colors
Merge 2.7.x into master.

Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
Merge pull request #659 from bodepd/bug/master/13888_systemd_self_instances_fix

(#13888) Fix self.instances for systemd service provider
Merge pull request #719 from stschulte/feature/2.7.x/11004

Solaris 11 Support in pkg provider
Merge 2.7.x into master.
Revert "(#11004) Fix regex for pkg provider line matching"

This reverts commit e37b536397568ffa3e6fe9383bc8a19a0d3765e5.

The discussion on the ticket showed that this wasn't correct, but I missed
that while reviewing the code.  I am backing this out so that it can be
properly resolved.
Merge branch '2.7.x'
Munge settings in value instead of set_value

Before this munging happened before variable interpolation in settings. This
made it impossible to expand a path properly if it contained a reference to
another setting. By munging after variable interpolation we can solve this
problem.
(#14229) Add a path type to settings

This path type will expand all paths in a string separated by
File::PATH_SEPARATOR, but does not add the paths to the settings catalog. This
helps the most on Windows, where it means that paths given to settings will
consistently use File::SEPARATOR, no matter how they were entered by the user.