Puppet: System Administration Automated

Support

Ticket #741 (reopened enhancement)

Opened 1 year ago

Last modified 7 months ago

new package provider: paludis

Reported by: KillerFox Assigned to: luke
Priority: normal Milestone: unplanned
Component: Gentoo Version: 0.23.0
Severity: normal Keywords: gentoo, paludis
Cc: florian.petran@gmail.com Triage Stage: Accepted
Attached Patches: Insufficient Complexity: Unknown

Description

I've wrote a package provider for the alternativ package mangler from gentoo, called paludis. It's using the ruby-API provided by paludis to determine all needed informations and install it over paludis. It still needs some optimisation. I'll add new patches to this bug, if there's an update for this provider. It works on my gentoo systems and can do the same as the portage-provider, but still needs some enhancement to provide some nice features from paludis. The only additional thing I already did implement is the feature to remove all unused-dependencies by a package if it gets removed. Future version should also support slots and destinations.

Attachments

puppet-0.23.0-paludis-try1.diff (5.1 kB) - added by KillerFox on 07/30/07 10:47:23.
package provider: paludis
paludis.rb (3.9 kB) - added by fpetran on 11/05/07 17:29:05.
the provider script from the first post, minus the extra parameter, minus default for gentoo

Change History

07/30/07 10:47:23 changed by KillerFox

  • attachment puppet-0.23.0-paludis-try1.diff added.

package provider: paludis

08/01/07 00:07:05 changed by luke

  • stage changed from Unreviewed to Needs design decision.
  • patch changed from Code to Insufficient.

This patch changes the default package type for gentoo, which results in backward-compatibility issues. I'm not willing to accept such a patch unless José, who has been the Gentoo maintainer, signs off on it.

Also, this creates a new parameter that no one else can use. Do other package types have this capability? Should this be a provider feature?

11/05/07 17:29:05 changed by fpetran

  • attachment paludis.rb added.

the provider script from the first post, minus the extra parameter, minus default for gentoo

11/05/07 17:37:07 changed by fpetran

  • cc set to florian.petran@gmail.com.

As for the extra parameter, how about adding a parameter to package like pkgmgr_extra_opts which one would use to pass a string to the package manager which would get appended to the command line call, thereby passing extra options specific for one package manager? So that e.g.

package{ "postfix":
   ensure => absent,
   provider => paludis,
   pkg_mgr_extra_opts => "--with-unused-dependencies"
}

would work as intended by the original patch author.

11/24/07 05:54:37 changed by luke

  • status changed from new to assigned.
  • stage changed from Needs design decision to Ready for checkin.
  • milestone set to misspiggy.

11/24/07 05:54:52 changed by luke

  • patch changed from Insufficient to Code.

12/11/07 07:24:26 changed by luke

  • status changed from assigned to closed.
  • resolution set to fixed.

Added in [117f005ab22ef90686f4eb19aee3ea5c8dc93865].

12/11/07 17:47:08 changed by luke

  • status changed from closed to reopened.
  • patch changed from Code to Insufficient.
  • resolution deleted.
  • milestone changed from misspiggy to unplanned.

This provider causes failures on non-gentoo systems because it requires the 'Paludis' library (see #956).

In order to make this work well within Puppet, you need to create a 'paludis' feature that tests whether the Paludis library is present and only have the provider be suitable in that case. See lib/puppet/feature/ for example features, then you should have something like this:

confine => Puppet.features.paludis?

to test whether the feature is present.

01/02/08 20:44:37 changed by luke

  • stage changed from Ready for checkin to Accepted.

04/24/08 07:53:30 changed by luke

  • component changed from installer to Gentoo.