Merge branch 'maint/stable/filebucket_clarifications' into stable

* maint/stable/filebucket_clarifications:
  Maint: Improve documentation of filebucket attributes
Merge branch 'maint/stable/filebucket_clarifications'

* maint/stable/filebucket_clarifications:
  Maint: Improve documentation of filebucket attributes
  (packaging) Update PUPPETVERSION to 3.2.0-rc2
(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`.
(#19760) Use combine when running pkginfo

pkginfo was previously executed with combine => false so stderr was
discarded. This way puppet was unable to detect any errors the pkginfo
might print, especially the message `ERROR: information for
"some_package" was not found`.

As a result the provider failed every time it tries to check the current
state of an absent package.
(#19760) Use pkginfo method instead of execute

The pkginfo method is automatically created for us and provides a nice
wrapper around execute so prefer that one over building your own execute
method invocation. Please not that the buildin method does already set
combine to true so we are able to parse error messages
(#19760) Remove unnecessary stubbing in sun_spec

We do not have to stub the `command` method anymore because it is
nevery called directly. It is only called through the wrapper method
`pkginfo` which we already stub in the specs.
Merge branch 'ticket/stable/19760_fix_sun_provider' into stable

* ticket/stable/19760_fix_sun_provider:
  (#19760) Remove unnecessary stubbing in sun_spec
  (#19760) Use pkginfo method instead of execute
  (#19760) Use combine when running pkginfo
Merge branch 'stable'

* stable:
  (#19760) Remove unnecessary stubbing in sun_spec
  (#19760) Use pkginfo method instead of execute
  (#19760) Use combine when running pkginfo
(#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