Issue #4067 has been updated by Nigel Kersten.

So repos can only be added by a whitelist of types to get this functionality?
You'd preclude repos being created by file or exec or defined types that don't 
use the whitelisted types?

What if a package is required to be installed before the repositories? (Say a 
repository key signature)

What if someone is distributing preferences that impact upon the dependency 
resolution? Or anything else for that matter.


The reason I want this is to solve this kind of problem I've run into:

A requires B in the packaging system.

<pre>
package { A: ensure => installed, }

package { B: ensure => installed, }

file { foo:
  before => Package[B],
}
</pre>

This doesn't do what you want, because there's no relationship between 
Package[A] and File[foo] as far as Puppet is aware, so you'll get unpredictable 
results where sometimes Package[B] (via Package[A]) will be installed before 
File[foo], but not always.  This is really frustrating to debug, and will only 
become more of an issue as people share modules more.


I do think this would be a useful feature though, and it would make lots of 
things possible. You could have Puppet fail if you provide it inconsistent 
manifests, like ensuring two conflicting packages are both installed.
----------------------------------------
Feature #4067: Automatic dependency resolution for package managers.
http://projects.puppetlabs.com/issues/4067

Author: Trevor Vaughan
Status: Accepted
Priority: Normal
Assignee: 
Category: package
Target version: Statler
Affected version: development
Keywords: package, auto-generation, graph
Branch: 


Various parties have indicated that they would like Puppet to seamlessly 
integrate with the relevant package manager's dependency resolution ability if 
possible.

Situation: If you have RPMs A and B, where B depends on A and Puppet objects 
that depend on one, or more, of the RPMs, then Puppet should automatically add 
relevant ordering objects to properly order the RPM dependencies.

Example:

RPM A
RPM B
B -> A

package { "B":
  ensure => 'latest'
}

file { "foo":
  require => Package['B']
}

Should this manifest be activated, Puppet should automatically, generate an 
internal dependency from B to A and insert it into the dependency graph.

This is an obviously contrived example, but there are situations where you 
would want this type of thing to happen for more complex scenarios.


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to