ChefDK Windows Status


#1

Hi Chefs,

I’ve gotten some interest from people outside Chef-the-company about helping out on ChefDK on windows, so I’d like to share where we’re at in detail.

The good news is that I’ve been able to get though the build phase successfully. I have these patches either in-flight or merged:




The bad news is that Chef’s tests fail because of a segfault triggered by ruby-wmi:

https://tickets.opscode.com/browse/CHEF-5267

I should also point out that Chef is currently using a fork of ruby-wmi called rdp-ruby-wmi. I haven’t looked at it too deeply, but it seems that ohai uses features or APIs from this version that are not available in the mainline ruby-wmi 0.4.0. In any case, simply upgrading to the newer mainline version does not resolve the segfault bug.

At the current time, our plan is to investigate and attempt to fix or workaround this issue. Ruby 1.9 will be EOL soon enough and the performance benefits of newer Ruby will be especially welcome on Windows. If it takes too long, we will fall back to using Ruby 1.9.3 for ChefDK on windows, but this will require us to modify the chef-dk (command line tool) which is using some Ruby 2.0 features (named arguments).

I’ll also note that we would prefer to ship Ruby 2.1.1 (which I believe has some fixes for win32ole that could be relevant), but our omnibus build process uses the Rubies provided by http://rubyinstaller.org who do not yet ship Ruby 2.1.1.

If any brave souls want to pitch in on the ruby-wmi issue, it would be greatly appreciated. You can follow up here with any questions, or email me directly if you prefer.

Cheers,


Daniel DeLeo


#2

On Friday, May 2, 2014 at 8:17 AM, Daniel DeLeo wrote:

Hi Chefs,

I’ve gotten some interest from people outside Chef-the-company about helping out on ChefDK on windows, so I’d like to share where we’re at in detail.

The good news is that I’ve been able to get though the build phase successfully. I have these patches either in-flight or merged:

https://github.com/opscode/omnibus-chef/pull/150
https://github.com/opscode/omnibus-software/pull/185
https://github.com/opscode/appbundler/pull/3
https://github.com/opscode/chef/pull/1399

The bad news is that Chef’s tests fail because of a segfault triggered by ruby-wmi:

https://tickets.opscode.com/browse/CHEF-5267

I should also point out that Chef is currently using a fork of ruby-wmi called rdp-ruby-wmi. I haven’t looked at it too deeply, but it seems that ohai uses features or APIs from this version that are not available in the mainline ruby-wmi 0.4.0. In any case, simply upgrading to the newer mainline version does not resolve the segfault bug.
Quick update, we seem to be making progress with this approach: https://github.com/opscode/chef/pull/1402