(#17824) PMT should not prefer pre-release versions to existing stable versions.
(#20677 Raise error on missing path for auth stanza)

This patch raises a ConfigurationError when the user has specified an
allow/allow_ip directive without a preceding path directive.
This is, presumably, a bit more user friendly than having a NilClass
exception thrown when you forget to specify the path directive in your
auth.conf
(#20442) Add tests for base provider methods

Prior to this commit, the base AixObject provider was supposed to raise
a Puppet::Error if called on several of the base methods; however, no
tests existed and those methods instead raised an error because the
non-existant `detail` was left in the error message from some copypasta.
This commit begins adding tests for the AixObject provider by starting
with these methods.
(#20442) Add tests for attribute conversion methods

Prior to this commit, no tests existed for the AixObject base provider
attribute conversion methods. This commit adds tests to verify validity
and structure of the attribute conversion methods.
(#20442) only execute lscmd once

Prior to this command, the AixObject provider was executing the lscmd
three times because the output is parsed in different ways. This commit
changes the provider to simply used the cached output in subsequent
parse commands.
(maint) Clarify the merge-up process in COMMITTERS

Without this patch some of the committers are using a process that
involves merging a topic branch based on stable into both `stable` and
`master`.  This is a problem because it's confusing and inconsistent
from other committers who are merging a topic branch into `stable`, then
merging `stable` into `master.

The two processes, while equivalent in nature, produce different and
inconsistent log messages when reviewing `git lg`.  For example, the
following log is produced by the process that does not merge up:

    *   e130aa5 Merge branch 'maint/stable/filebucket_clarifications' 30 minutes ago Hailee Kenney  (HEAD, origin/master, master)
    |\
    | * b301ada Maint: Improve documentation of filebucket attributes 33 minutes ago Nick Fagerlund
    * |   9aa9d69 Merge pull request #1636 from adrienthebo/maint-readme_developer_explain_side_effects_in_tests 3 days ago Hailee Kenney
    |\ \
    * \ \   515cd97 Merge pull request #1639 from Sharpie/18895-fix-runit-documentation 3 days ago Hailee Kenney
    |\ \ \
    | * | | 713bcbe (#18895) Fix documentation in runit provider 3 days ago Charlie Sharpsteen
    |/ / /
    * | |   4c2655f Merge pull request #1637 from jeffweiss/tickets/bug/18393_diffargs_broken_on_aix53 4 days ago Chris Price
    |\ \ \
    | * | | bb86ff6 (#18393) AIX 5.3 doesn't support diff -u 4 days ago Jeff Weiss
    * | | |   325b8bf Merge pull request #1635 from hlindberg/issues/fix-20581 5 days ago Adrien Thebo
    |\ \ \ \
    | |/ / /
    |/| | |
    | | * | a3941d4 (maint) Add documentation on side effects in tests 6 days ago Adrien Thebo
    | * | | 23005e6 (#20581) Correct parser future's validation of query expression 7 days ago Henrik Lindberg
    |/ / /
    | | * edfabfd (packaging) Update PUPPETVERSION to 3.2.0-rc2 7 days ago Matthaus Owens  (3.2.0-rc2)
    * | |   8c0e1b3 Merge branch 'stable' 7 days ago Jeff McCune
    |\ \ \
    | | |/
    | |/|
    | * |   761de6b Merge branch 'fix_activerecord_centos' into stable 7 days ago Jeff McCune

Compare this to the log of the stable branch and observe how there are two very
similar merge commits with the log `Merge branch
'maint/stable/filebucket_clarifications'`  Please observe these similar commit
messages have different commit ID's, e130aa5 and 47fd6f9 respectively, and both
merge commits are bringing in the change contained in b301ada.

    *   47fd6f9 Merge branch 'maint/stable/filebucket_clarifications' into stable 33 minutes ago Hailee Kenney  (origin/stable, stable)
    |\
    | * b301ada Maint: Improve documentation of filebucket attributes 34 minutes ago Nick Fagerlund
    |/
    * edfabfd (packaging) Update PUPPETVERSION to 3.2.0-rc2 7 days ago Matthaus Owens  (3.2.0-rc2)

Using the merge-up process made clear in this patch, the history will look as
follows:

    *   1f79310 Merge branch 'stable' 5 seconds ago Jeff McCune  (HEAD, master)
    |\
    | *   c6f6ffb Merge branch 'fix/stable/clarify_merge_up' into stable 45 seconds ago Jeff McCune  (stable)
    | |\
    | | * 44b999c (maint) Clarify the merge-up process in COMMITTERS 53 seconds ago Jeff McCune  (fix/stable/clarify_merge_up)
    | |/
    * |   e130aa5 Merge branch 'maint/stable/filebucket_clarifications' 35 minutes ago Hailee Kenney  (origin/master)
    |\ \
    | | *   47fd6f9 Merge branch 'maint/stable/filebucket_clarifications' into stable 36 minutes ago Hailee Kenney  (origin/stable)

This minor difference also has the effect of making `git branch --contains
c6f6ffb` much more useful, as both `master` and `stable` will contain merge
commits made into `stable`.
(#20442) Filter attributes to only those managed

Prior to this commit, when trying to manage `attributes` for AIX users,
2 behaviours were occuring: 1) unmanaged attributes were included in the
"diff" and 2) regardless of current state, the changes were always
applied. This commit filters the changeset to only those `attributes`
explicitly mentioned in the manifest (or all of them in the case of
`puppet resource user`. Because the changeset is now sane, a change is
only enforced when necessary.
(#20677) Add tests to ensure configuration errors are raised as expected

I also took the liberty of adding a add_raw_stanza helper function. It
doesn't really do much, but it seems like a good idea to me to keep the specs
as clean as possible. Maybe having two separate cases for allow &
allow_ip is a bit overzealous, but I guess the overhead is minimal.
(packaging) Update PUPPETVERSION to 3.2.0
Merge branch 'release_3.2.0' into stable
(#19875) Package descriptions obtained by rpm/dpkg providers

Previously Puppet::Provider::Package::Rpm and Dpkg implementations
obtained package information from the system without capturing package
description information.

This change modifies the rpm and dpkg-query format strings to include
descriptions.  This can be used for querying package state on a node.

The rpm implementation is a simple change relying on a SUMMARY field
which is a single line and which does not change the one line per
package parsing structure in the Rpm class.

The dpkg implementation is a more complicated change because we are
using a DESCRIPTION field in dpkg-query's format string, which is a
multi-line value.  The first line is a summary, and is all we want, but
dpkg-query then print's x additional lines of long description.  A new
parse_multi_line method has been added to treat these multi-line results
as a single entry, grab the first line with summary and ignore the
excess lines without triggering warnings.  Completely invalid package
entry results should still trigger warnings.

Current dpkg-query versions (as of 1.16.2 from 2012, I believe) have a
binary:Summary field which would return this to a single line parse and
make it simpler and less error prone again.  But earlier Debian/Ubuntu
installations don't have this (Ubuntu 12.04 for instance).

Dpkg.instance, Dpkg#query both used a Dpkg.dpkgquery_piped to expose an
IO pipe for parsing.  Regex match used in Rpm to ensure we only consume
good query output lines.
Merge branch '19875-package-descriptions-feature'

* 19875-package-descriptions-feature:
  (#19875) Package descriptions obtained by rpm/dpkg providers
(#11108) Make the pkgdmg provider able to install a remote flat pkg file

Without this patch applied when the pkgdmg provider is used to install a remote flat pkg file, the installation fails. This is becasue the installer expect a file with the .pkg extension and the curl command used to download the remote package set as output a filename without any extension. This patch fixes the problem by adding the correct extension to the curl output parameter.
(maint) stub `dpkgquery` in aptitude specs

The Puppet::Provider.command method will attempt to look up a command
and will verify that it's present on the system with Puppet::Util#which.
If the underlying command is not present an exception will be raised,
and this was causing spec tests to fail. This commit stubs out the
`dpkgquery` command in the aptitude spec provider so that the specs can
be run on platforms that don't have /usr/bin/dpkg-query.

Paired-with: Joshua Partlow <joshua.partlow@puppetlabs.com>
Merge branch 'maint-stub_aptitude_dpkgquery'
Merge pull request #1645 from jeffmccune/clarify_merge_up

(RFC) Clarify the merge-up process in COMMITTERS
Merge branch 'pull-1641'

This closes GH-1641
Fix for rc-status not showing puppet when puppet is run as a service

/bin/rc-status doesn't show the service specified in the environment
variable "RC_SVCNAME", which when puppet is started as a service is set
to "puppet".

Updated to use "has_command" instead of ENV.delete
Ensure that openrc service provider wipes RC_SVCNAME variable
Merge branch 'pull-1646'

This closes GH-1646