Issue #1553 has been reported by nigelk2.
----------------------------------------
Bug #1553: Puppet and Facter cannot both install the plist module into two
different locations.
http://reductivelabs.com/redmine/issues/show/1553
Author: nigelk2
Status: Unreviewed
Priority: Normal
Assigned to:
Category:
Target version:
Complexity: Unknown
Keywords:
The error people are likely to see is:
<pre>
/Library/Ruby/Site/1.8/plist/parser.rb:67: warning: already initialized
constant TEXT
/Library/Ruby/Site/1.8/plist/parser.rb:68: warning: already initialized
constant XMLDECL_PATTERN
/Library/Ruby/Site/1.8/plist/parser.rb:69: warning: already initialized
constant DOCTYPE_PATTERN
/Library/Ruby/Site/1.8/plist/parser.rb:70: warning: already initialized
constant COMMENT_START
/Library/Ruby/Site/1.8/plist/parser.rb:71: warning: already initialized
constant COMMENT_END
/Library/Ruby/Site/1.8/plist.rb:21: warning: already initialized constant
VERSION
NoMethodError: undefined method ‘new’ for nil:NilClass
</pre>
when running facter >= 1.5.0 with puppet.
Sample code to illustrate the problem:
<pre>
#!/usr/bin/env ruby
require 'puppet/util/plist'
require 'facter/util/plist'
xml_data = %x{system_profiler -xml SPHardwareDataType}
puts Plist::parse_xml( xml_data )
</pre>
will produce the above error.
I'm not sure what the long term solution here is, but I offer several
alternatives:
# Neither Puppet or Facter include plist, but require it to be installed
separately.
# Puppet does not include plist, but Facter does (given that Facter is a
requirement for Puppet)
# We do something hacky like this in Facter for the require statements
<pre>
begin
Plist
rescue NameError
require 'facter/util/plist'
end
</pre>
eeeeeeew.
As it stands, Facter 1.5.0 and higher are broken when used with Puppet on Mac
OS X until this is resolved.
Of the three options above, I think the second is the most palatable long term,
but requires changes to Puppet. The first option is probably the most
'correct' option, given some users may in fact install plist themselves and try
to use in Facter facts or Puppet plugins, but adds an annoying barrier to entry
for getting Puppet/Facter installed on Mac OS X.
I don't mind packaging plist up with Facter and Puppet on Mac OS X in a single
metapackage if that's the best solution everyone agrees on.
----------------------------------------
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://reductivelabs.com/redmine/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
-~----------~----~----~----~------~----~------~--~---