Use method execute instead of transport.command
Fix spaces
Explicit use of the device given the block
Extract connection and disconnection behaviours
Remove unused verbose parameter, add debug in the transport
Disable debug log in the transport
Fix portage-provider so that packages with keywords can be installed

This patch removes the --stable restriction from the portage provider,
which made the installation of packages with keyword-restrictions impossible.
By superimposing this restriction the provider broke in many installations
and thus rendered puppet unusable for systems that relied on packages with
keyword-restrictions. This applies for example to all packages provided by
overlays.
This fix puts the administrator back into the responsibility to decide which
packages he/she wants to install.
Add tests for gentoo provider
Add extlookup2hiera manpages to redhat and debian packages

Now that a manpage exists for extlookup2hiera, it needs to be part of the
redhat and debian packaging so it can be laid down correctly for those
packages. This commit adds the manpage to the puppet package on redhat and the
puppet-common package on debian.
Merge pull request #1432 from haus/maint/3.1.x/add_extlookup2hiera_manpages

Add extlookup2hiera manpages to redhat and debian packages
Update PUPPETVERSION to 3.1.0-rc2
Update lib/puppet/application/agent.rb

Fix docs to refer to actual option.
Merge pull request #1435 from mrwacky42/patch-1

Fix docs for --test.
(#18942) Add XOR operator

Adds support for the xor boolean operator.
Merge branch 'dalen-xor_operator' closes #1436

* dalen-xor_operator:
  (#18942) Add XOR operator
Revert "Merge branch 'dalen-xor_operator' closes #1436"

This reverts commit 285bc8c85b5e667d7293e640547aac3bbde75c15, reversing
changes made to 47771e2892182fe78c34c55c5d433f16d6bb34d1.

This patch is being reverted due to the following concerns raised on the
pull request comment stream:

XOR is also done with the same precedence as OR - this is has some
effects:

    true or false xor true == false
    false xor true or false == true

Was this intentional? I think this is going to make people confused, as
opposed to setting the precedence of XOR to be lower (or higher) than OR
to have a clear order of evaluation.

Also, "Hate to be picky, but this is not 100% backwards compatible. If
someone used a bare word xor in their manifests this would now not work,
if someone has written an xor function it is now not callable. If I
remember correctly using keyword as name is not supported for every
construct."
Make envpuppet run under sh
Revert "Revert "Merge branch 'stschulte-ticket/master/fixup_expiry'""

This reverts commit 1ddcb5e511e131645cfa89305784f66427374287.

Conflicts:
    spec/unit/provider/user/useradd_spec.rb

The original commit "Merge branch
'stschulte-ticket/master/fixup_expiry'" was reverted because it caused
failures on ruby 1.8 because Date.next_day and Date.prev_day are not
public in ruby 1.8 (will the methods are publicly available in ruby 1.9)

Revert the revert and reinstall the original commit to be able to fix
the issues.
Fix user expiry failures on ruby 1.8

Date.next_day is private on ruby 1.8 while it is public on ruby 1.9

Convert the expiry to a date in a different way that works both on ruby
1.8.7 and ruby 1.9
Fix user expiry on Solaris

The useradd provider can manage the expiry of a user account. To remove
an expiry you can use `usermod -e '' alice` and on Solaris the man page
states that providing `' '` would cause usermod to remove the expiry.
This happens to be not true at least on Solaris 10 so treat Linux and
Solaris the same.

However setting the expiry date to a real date is different on Solaris.
While Linux only accepts the date in the format YYYY-MM-DD, Solaris
accepts multiple different formats but %Y-%m-%d is not one of them. So
use the format %m/%d%/%Y when on Solaris which is also used in the useradd
manpage (and did work on test box)