inkblot/puppet-bind

5.0.1 is not compatible with ruby 1.8.7

Closed this issue · 7 comments

Not an expert by any means but can't get 5.0.1 to work with RHEL 6 systems that install puppet via RPM. Looks like ruby 1.8.7 has issues with Socket.ip_address_list that was added to resource_record.rb.

The closest thing I've come to claiming that the module works on specific versions of Ruby is in the Travis CI configuration, where testing is configured to use 1.9.3 and 2.0.0. I know that the module used to work on 1.8.7 because I used to use the module with that version, but that was a long time ago. Having said that, I don't want to deliberately break any accidental support that exists. I'll make a change so that the module is at least usable on 1.8.7, but I can't find a good substitute for Socket.ip_address_list that will work in 1.8.7, and so unfortunately all I can easily do is disable autorequires in the absence of Socket.ip_address_list.

Could you try #68 and let me know how it works out?

That works, thanks. For others that are using RHEL 6 and installing Puppet via RPM with Ruby 1.8.7, the work around provided by #60 will help.

Basically add this to your manifest:

Service['bind'] -> Resource_record <| |>

If you would rather, I could instead have the type assume a dependency by default rather than not. I'm pretty sure an autorequire on a non-existent resource is effectively a no-op anyway.

Actually, I think I talked myself into it. One moment please.

I pushed a second change that reverses the assumption on ruby 1.8.7. It should make the Service['bind'] -> Resource_record <| |> dependency declaration unnecessary. Can you verify this please?

I'm going to go ahead and merge the branch.