Add support for DragonFly BSD.

As DragonFly is an offspring of FreeBSD, most of the assumptions for
FreeBSD are valid for DragonFly BSD. The only notable exception is
package management, which is performed using pkgin.

While implementing, a missing function in the FreeBSD service
provider has been noted.
Add stdin parsing to puppet parser validate
(#11727) Support STDIN for `puppet parser validate`

This adds an acceptance test for the STDIN validation feature of the `puppet
parser validate` action.

Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
(#15731) Full certificate metadata for pson

When attempting to get certificate metadata using the REST API, the API
returns a different set of metadata based on whether one requests yaml
or pson, neither of which are the full set of metadata.
This commit adds dns_alt_names/subjectAltNames to the metadata for pson.
(#15731) explicit fingerprint digest for pson

The pson metadata for a certificate (or certificate request) contains a
fingerprint which was created with the default digest algorithm. This
algorithm must change as we move to FIPS 140-2 compliance because MD5 is
explicitly denied.
This commit includes fingerprint metadata for 3 stronger hashing
algorithms and explicitly calls out that the fingerprint is for that
algorithm.
(#16139) Provide accessors for @puppet_version and @report_format in
reports

Prior to this commit, some of the data that was useful / necessary
to write a complete report processor was only accessible via
instance variables, while the vast majority of the data was available
through accessor methods.  This commit simply adds accessors for
puppet_version and report_format so that authors of report processors
aren't forced to interact with instance variables.  This should
make report processor implementation a bit more consistent, and
provides a little bit of abstraction from the underlying implementation
details.
(#15731) Move explicit fingerprints to hash

Move the explicit fingerprints for certificates and certificate requests
to a hash within the normal pson data. This commit makes the format of
the pson:
{
  ...
  fingerprint: <current fingerprint algorithm>
  fingerprints: {
    default: <current fingerprint algorithm>
    SHA1: <sha1 fingerprint>
    SHA256: <sha256 fingerprint>
    SHA512: <sha512 fingerprint>
  }
}

Clean up the tests to reduce duplication and improve clarity of what is
actually being tested in each case.
(#16058) Add setting to configure catalog cache

This adds a setting to configure the cache terminus used by the catalog
indirection. The two reasonable values at this time are "yaml" and "pson".
(#16058) Set pson as default catalog cache format

Serializing as pson appears to be faster, so set it as the default. Yaml is
still available by setting catalog_cache_terminus.
Add a terminus setting type

The terminus setting type makes it possible to set a terminus to nil by
providing an empty string in the configuration. It also converts the terminus
name to a symbol automatically.

This required making all terminus settings consistently use symbols.
Add yaml files
Switch off building gem for 2.7.x

The 2.7 series packages binaries in sbin which is not
compatible with gems. We'll use the existing gem task
for gems rather than packaging repo because it hacks
around this already.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
(#16119) Recognize carriage return escape sequence

Previously, the lexer would issue a warning when encountering a carriage
return escape sequence \r. Such as when specifying file content in a
manifest. This commit modifies the lexer to accept \r.
(#16019) Don't add Unix paths to Windows search path

Previously, we were adding `/usr/sbin` and `/sbin` to Puppet's shell
search path on all platforms, including Windows.

This commit changes the behavior on Windows so that those paths are not
added. It also doesn't add Windows equivalents, because the environment
it inherits from its parent process already contains a suitable search
path.

This commit also sets File::PATH_SEPARATOR appropriately when using the
windows or posix shared context.
Move redhat spec file to erb template in ext/redhat
Add debian packaging artifacts and template
Move and template all apple pkging artifacts to ext/osx

Also add a file_mapping.yaml file for apple packaging.
Fixup Rakefile to use packaging repo
Add in manpage listings that should have been there
Remove broken dual build-requires of facter in redhat spec