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.