Portage GT (short for "Portage using Gentoo") is a replacement Package Provider for Puppet. It was written by Whatbox Inc. to improve server management, and released as on Open Source project under the MIT, BSD & GPL licenses. Patches and bug reports are welcome, please see our CLA.
I will also warn you that this module is not completely compatible with the existing Portage Provider. Rather than making assumptions, this provider will throw errors in the event of ambiguity, preferring developer clarification over the possibility of performing an unintended action.
The following packages are necessary for this module.
app-admin/puppet
sys-apps/portage
app-portage/eix
dev-ruby/xml-simple
The following things are assumed:
/etc/portage/package.use
is a directory/etc/portage/package.keywords
is a directory- Both of the above are free for modification by puppet
- WARNING: Folders contained within either of these will be automatically removed by this plugin
- Puppet: We require a provider shutdown function to compliment self.prefetch, that will only be executed once, after all packages have been run
- Puppet: Ability to add newparam()'s to Puppet Providers and overwrite existing ones, without overwriting the entire type
- NOTE: this should be done in a flattened manner, not using install_options like the MSI Provider.
- Remove package type overwrite (see Research Needed > Puppet)
- "repository" option, to specify the exact overlay to be used
- Use an external config file
- Pro: No editing the code
- Pro: The current most likely don't update when puppet is daemonized
- Con: Assuming file is managed by puppet, it will take two runs for changes to take effect
revdep-rebuild
implemented via shutdown function (see Research Needed > Puppet)
These are features we're not implementing at this time
- package mask
- using puppet
ensure => :held
- using puppet
- package unmask
CONFIG[:useChange]
does not trigger a recompile if global use flags defined in/etc/make.conf
change.