I encountered this issue on 14 January, and struggled a bit.
Consider the following puppet script:
#!/usr/bin/env puppet
package { "Firefox-2.0.0.7-1.pkg.dmg":
provider => pkgdmg,
ensure => installed,
source => "http://northstarlabs.net/pub/Firefox-2.0.0.7-1.pkg.dmg";
}
Trying to install a simple package on Mac OS X 10.5.1 with Puppet 0.24.1, I'm getting the following exception:
nutburner:~ root# puppet --trace -vd ~mccune/Developer/mw08/trunk/puppet/tools/firefox.pp
debug: Creating default schedules
debug: Prefetching pkgdmg resources for package
debug: //Package[Firefox-2.0.0.7-1.pkg.dmg]: Changing ensure
debug: //Package[Firefox-2.0.0.7-1.pkg.dmg]: 1 change(s)
/Library/Ruby/Site/1.8/puppet/util/plist/parser.rb:67: warning: already initialized constant TEXT
/Library/Ruby/Site/1.8/puppet/util/plist/parser.rb:68: warning: already initialized constant XMLDECL_PATTERN
/Library/Ruby/Site/1.8/puppet/util/plist/parser.rb:69: warning: already initialized constant DOCTYPE_PATTERN
/Library/Ruby/Site/1.8/puppet/util/plist/parser.rb:70: warning: already initialized constant COMMENT_START
/Library/Ruby/Site/1.8/puppet/util/plist/parser.rb:71: warning: already initialized constant COMMENT_END
/Library/Ruby/Site/1.8/puppet/util/plist.rb:21: warning: already initialized constant VERSION
debug: Puppet::Type::Package::ProviderPkgdmg: Executing '/usr/bin/hdiutil mount -plist -nobrowse -readonly -noidme -mountrandom /tmp /Library/WebSe
rver/Documents/packages/Firefox-2.0.0.7-1.pkg.dmg'
/Library/Ruby/Site/1.8/puppet/util/plist/parser.rb:44:in `tag_start'
/Library/Ruby/Site/1.8/puppet/util/plist/parser.rb:96:in `parse'
/Library/Ruby/Site/1.8/puppet/util/plist/parser.rb:28:in `parse_xml'
/Library/Ruby/Site/1.8/puppet/provider/package/pkgdmg.rb:150:in `installpkgdmg'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/open-uri.rb:32:in `open_uri_original_open'/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/open-uri.rb:32:in `open'
/Library/Ruby/Site/1.8/puppet/provider/package/pkgdmg.rb:148:in `installpkgdmg'
/Library/Ruby/Site/1.8/puppet/provider/package/pkgdmg.rb:189:in `install'
/Library/Ruby/Site/1.8/puppet/type/package.rb:52:in `set_present'
/Library/Ruby/Site/1.8/puppet/property.rb:164:in `send'
/Library/Ruby/Site/1.8/puppet/property.rb:164:in `call_valuemethod'
/Library/Ruby/Site/1.8/puppet/property.rb:350:in `set'
/Library/Ruby/Site/1.8/puppet/property.rb:422:in `sync'
/Library/Ruby/Site/1.8/puppet/propertychange.rb:81:in `go'
/Library/Ruby/Site/1.8/puppet/propertychange.rb:109:in `forward'
/Library/Ruby/Site/1.8/puppet/transaction.rb:119:in `apply_changes'
/Library/Ruby/Site/1.8/puppet/transaction.rb:111:in `collect'
/Library/Ruby/Site/1.8/puppet/transaction.rb:111:in `apply_changes'
/Library/Ruby/Site/1.8/puppet/transaction.rb:83:in `apply'
/Library/Ruby/Site/1.8/puppet/transaction.rb:240:in `eval_resource'
/Library/Ruby/Site/1.8/puppet/util.rb:444:in `thinmark'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/benchmark.rb:307:in `realtime'
/Library/Ruby/Site/1.8/puppet/util.rb:443:in `thinmark'
/Library/Ruby/Site/1.8/puppet/transaction.rb:239:in `eval_resource'
/Library/Ruby/Site/1.8/puppet/transaction.rb:311:in `evaluate'
/Library/Ruby/Site/1.8/puppet/util.rb:444:in `thinmark'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/benchmark.rb:307:in `realtime'
/Library/Ruby/Site/1.8/puppet/util.rb:443:in `thinmark'
/Library/Ruby/Site/1.8/puppet/transaction.rb:310:in `evaluate'
/Library/Ruby/Site/1.8/puppet/transaction.rb:304:in `collect'
/Library/Ruby/Site/1.8/puppet/transaction.rb:304:in `evaluate'
/Library/Ruby/Site/1.8/puppet/node/catalog.rb:102:in `apply'
/usr/bin/puppet:209
/Library/Ruby/Site/1.8/puppet/util/plist/parser.rb:44:in `tag_start'
/Library/Ruby/Site/1.8/puppet/util/plist/parser.rb:96:in `parse'
/Library/Ruby/Site/1.8/puppet/util/plist/parser.rb:28:in `parse_xml'/Library/Ruby/Site/1.8/puppet/provider/package/pkgdmg.rb:150:in `installpkgdmg'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/open-uri.rb:32:in `open_uri_original_open'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/open-uri.rb:32:in `open'
/Library/Ruby/Site/1.8/puppet/provider/package/pkgdmg.rb:148:in `installpkgdmg'
/Library/Ruby/Site/1.8/puppet/provider/package/pkgdmg.rb:189:in `install'
/Library/Ruby/Site/1.8/puppet/type/package.rb:52:in `set_present'
/Library/Ruby/Site/1.8/puppet/property.rb:164:in `send'
/Library/Ruby/Site/1.8/puppet/property.rb:164:in `call_valuemethod'
/Library/Ruby/Site/1.8/puppet/property.rb:350:in `set'
/Library/Ruby/Site/1.8/puppet/property.rb:422:in `sync'
/Library/Ruby/Site/1.8/puppet/propertychange.rb:81:in `go'
/Library/Ruby/Site/1.8/puppet/propertychange.rb:109:in `forward'
/Library/Ruby/Site/1.8/puppet/transaction.rb:119:in `apply_changes'
/Library/Ruby/Site/1.8/puppet/transaction.rb:111:in `collect'
/Library/Ruby/Site/1.8/puppet/transaction.rb:111:in `apply_changes'
/Library/Ruby/Site/1.8/puppet/transaction.rb:83:in `apply'
/Library/Ruby/Site/1.8/puppet/transaction.rb:240:in `eval_resource'
/Library/Ruby/Site/1.8/puppet/util.rb:444:in `thinmark'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/benchmark.rb:307:in `realtime'
/Library/Ruby/Site/1.8/puppet/util.rb:443:in `thinmark'
/Library/Ruby/Site/1.8/puppet/transaction.rb:239:in `eval_resource'
/Library/Ruby/Site/1.8/puppet/transaction.rb:311:in `evaluate'
/Library/Ruby/Site/1.8/puppet/util.rb:444:in `thinmark'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/benchmark.rb:307:in `realtime'
/Library/Ruby/Site/1.8/puppet/util.rb:443:in `thinmark'
/Library/Ruby/Site/1.8/puppet/transaction.rb:310:in `evaluate'
/Library/Ruby/Site/1.8/puppet/transaction.rb:304:in `collect'
/Library/Ruby/Site/1.8/puppet/transaction.rb:304:in `evaluate'
/Library/Ruby/Site/1.8/puppet/node/catalog.rb:102:in `apply'
/usr/bin/puppet:209
err: //Package[Firefox-2.0.0.7-1.pkg.dmg]/ensure: change from absent to present failed: Could not set present on ensure: undefined method `new' for nil:NilClass at /Users/mccune/Developer/mw08/trunk/puppet/tools/firefox.pp:7
What I'm having difficulty with is that using irb, puppet/util/plist is able to parse the XML file just fine.