From 12793946417289160fc37d7d678883e0266d43a0 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Thu, 20 Nov 2025 13:51:31 -0800 Subject: [PATCH 1/3] Update gem versions to align with openbolt-runtime changes --- openbolt.gemspec | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/openbolt.gemspec b/openbolt.gemspec index 016e83329..4ac9b5773 100644 --- a/openbolt.gemspec +++ b/openbolt.gemspec @@ -52,6 +52,7 @@ Gem::Specification.new do |spec| spec.add_dependency "json", "~> 2.12" spec.add_dependency "jwt", "~> 2.2" spec.add_dependency "logging", "~> 2.2" + spec.add_dependency "minitar", ">= 0.6", "< 2.0" spec.add_dependency "net-scp", ">= 1.2", "< 5.0" spec.add_dependency "net-ssh", ">= 4.0", "< 8.0" spec.add_dependency "net-ssh-krb", "~> 0.5" @@ -61,7 +62,7 @@ Gem::Specification.new do |spec| spec.add_dependency "puppet-resource_api", ">= 1.8.1" spec.add_dependency "r10k", ">= 3.10", "< 6" spec.add_dependency "ruby_smb", "~> 1.0" - spec.add_dependency "terminal-table", "~> 3.0" + spec.add_dependency "terminal-table", "~> 4.0" spec.add_dependency "winrm", "~> 2.0" spec.add_dependency "winrm-fs", "~> 1.3" @@ -70,11 +71,4 @@ Gem::Specification.new do |spec| spec.add_development_dependency "rake", ">= 12.0", "< 14" spec.add_development_dependency "rspec", ">= 3.0", "< 4" spec.add_development_dependency 'voxpupuli-rubocop', '~> 5.0.0' - - platform = RUBY_PLATFORM - if platform =~ /mingw|mswin/ - spec.add_dependency "minitar", "~> 0.9" - else - spec.add_dependency "minitar", ">= 0.6", "< 2.0" - end end From 5a7d6df88062b22e9d09da264f6c0d7ad7090deb Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Fri, 21 Nov 2025 16:05:05 -0800 Subject: [PATCH 2/3] Add gems being pulled out of default gems in 3.4 --- openbolt.gemspec | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/openbolt.gemspec b/openbolt.gemspec index 4ac9b5773..be70e1b81 100644 --- a/openbolt.gemspec +++ b/openbolt.gemspec @@ -48,11 +48,13 @@ Gem::Specification.new do |spec| spec.add_dependency "CFPropertyList", ">= 2.2" spec.add_dependency "concurrent-ruby", "~> 1.0" spec.add_dependency "ffi", ">= 1.9.25", "< 2.0.0" + spec.add_dependency "fiddle", ">= 1.0", "< 2.0" spec.add_dependency "hiera-eyaml", ">= 3.0.0", "< 5.0.0" spec.add_dependency "json", "~> 2.12" spec.add_dependency "jwt", "~> 2.2" spec.add_dependency "logging", "~> 2.2" spec.add_dependency "minitar", ">= 0.6", "< 2.0" + spec.add_dependency "net-ftp", ">= 0.3", "< 0.4" spec.add_dependency "net-scp", ">= 1.2", "< 5.0" spec.add_dependency "net-ssh", ">= 4.0", "< 8.0" spec.add_dependency "net-ssh-krb", "~> 0.5" @@ -65,6 +67,9 @@ Gem::Specification.new do |spec| spec.add_dependency "terminal-table", "~> 4.0" spec.add_dependency "winrm", "~> 2.0" spec.add_dependency "winrm-fs", "~> 1.3" + if Gem.win_platform? + spec.add_dependency "win32ole", ">= 1.9" + end spec.add_development_dependency "bundler", ">= 1.14" spec.add_development_dependency "octokit", ">= 4.0", "< 9" From 21ffff795eaf8cb708f08be63b23addeabc93909 Mon Sep 17 00:00:00 2001 From: nmburgan <13688219+nmburgan@users.noreply.github.com> Date: Fri, 21 Nov 2025 16:05:29 -0800 Subject: [PATCH 3/3] Fix for noisy load of ruby_smb gem --- lib/bolt/transport/winrm/connection.rb | 16 +++++++++++++--- spec/spec_helper.rb | 6 ++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/lib/bolt/transport/winrm/connection.rb b/lib/bolt/transport/winrm/connection.rb index a2e3c377f..68b85d736 100644 --- a/lib/bolt/transport/winrm/connection.rb +++ b/lib/bolt/transport/winrm/connection.rb @@ -162,9 +162,20 @@ def upload_file_winrm(source, destination) raise Bolt::Node::FileError.new(e.message, 'WRITE_ERROR') end - def upload_file_smb(source, destination) + def require_ruby_smb # lazy-load expensive gem code + # In BinData 2.5.0+, the below commit makes things VERY noisy when loading RubySMB, so + # we temporarily disable warnings while we load it. If this ever gets fixed, get rid + # of this function and restore the plain 'require' where this function is called. + # https://github.com/dmendel/bindata/commit/2c8588a1ae5959080fffa429e07027f2ff20161c + prev = $VERBOSE + $VERBOSE = nil require 'ruby_smb' + $VERBOSE = prev + end + + def upload_file_smb(source, destination) + require_ruby_smb win_dest = destination.tr('/', '\\') if (md = win_dest.match(/^([a-z]):\\(.*)/i)) @@ -215,8 +226,7 @@ def download_file_winrm(source, destination, download) end def download_file_smb(source, destination) - # lazy-load expensive gem code - require 'ruby_smb' + require_ruby_smb win_source = source.tr('/', '\\') if (md = win_source.match(/^([a-z]):\\(.*)/i)) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 9584a9f65..8755b13d7 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -12,7 +12,13 @@ require 'puppet_pal' # HACK: must be loaded prior to spec libs that implement stub to prevent # RubySMB::Dcerpc::Request from shadowing 'stub' through BinData::DSLMixin::DSLFieldValidator +# In BinData 2.5.0+, the below commit makes things VERY noisy when loading RubySMB, so +# we temporarily disable warnings while we load it. +# https://github.com/dmendel/bindata/commit/2c8588a1ae5959080fffa429e07027f2ff20161c +prev = $VERBOSE +$VERBOSE = nil require 'ruby_smb' +$VERBOSE = prev ENV['RACK_ENV'] = 'test' $LOAD_PATH.unshift File.join(__dir__, 'lib')