Why do this
The previus built in puppet portage package provider (I'm just going to shorten it to PPPP) only supported very simplistic package interactions. Mainly package name (with slot) install and uninstall. This has proven fairly limiting, if you want to install a specific version of a package and lock it down you were forced to call out to exec or editing package.{mask,unmask,keywords}
files.
The new provider (which will be built into puppet in 5.0 or puppet-agent-2.0) supports all the package provider attributes.
How do I get this awesome thing
Emerge puppet or puppet-agent with the experimental
use flag.
What it can do
You can use the following attributes with the new PPPP.
- Name - The full package atom works now, using
qatom
on the backend. - ensure - now allowing a package purge as well (
CONFIG_PROTECT="-*"
). - install_options - you can now pass options to emerge (
--deep
or--usepkgonly
for example). - uninstall_options - just like install_options
Being able to call out specific versions and per package install options will give much greater flexability.
fin
Here is the pull request that upstream puppet merged.
If you have any questions I'm on freenode as prometheanfire.