The currently existing ruby gems version of puppet (2.7.18) is not fully compatible with solaris 11 packages. It whines about some packages not matching the regular expression.
I hunted around, and found a patch in the ruby bug database... which doesnt work. I found a new version of pkg.rb in puppet 3.0... .which is not backwards compatible. So, I decided to make a new version. Specifically, I just recoded the parse_line() routine, to be along the lines of the puppet 3.0 version, yet compatible with current release. Not sure if I should cross post this to puppet-dev or whatever. but here it is inline, since its short-ish. Disclaimer #1: This *appears* to work for me: I have not done extensive testing yet. Disclaimer #2: This is for *officially shipping solaris 11*. It would probably break if you're using the old "opensolaris" junk To use this, hand-edit /var/ruby/1.8/gem_home/gems/puppet-2.7.18/lib/puppet/provider/package/pkg.rb and replace the existing parse_line definition, with this one. def self.parse_line(line) hash = {} case when line =~ /^(\S+) +(\S+) +(...)$/ hash[:name] = $1 hash[:version] = $2 hash[:flags] = $3 when line =~ /^(\S+) \((.+)\) +(\S+) +(\S+)$/ hash[:name] = $1 hash[:version] = $3 hash[:flags] = $4 else warning "Failed to match 'pkg list' line #{line.inspect}" return nil end hash[:provider] = self.name hash[:status] = case hash[:flags] when /^i/ 'installed' when /^-/ 'known' else warning "unknown package state for #{hash[:name]}: #{hash[:flags]}" 'unknown' end if hash[:status] == "installed" hash[:ensure] = :present else hash[:ensure] = :absent end return hash end -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To view this discussion on the web visit https://groups.google.com/d/msg/puppet-users/-/Zz1-vPnir-8J. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.