[meta-virtualization] [m-c-s][PATCH] puppet: back-port some patches to fix issues with Ruby >= 2.0.0

Mark Asselstine mark.asselstine at windriver.com
Thu Aug 20 13:14:01 PDT 2015


We should uprev puppet at some point but for the sake of stabilizing
first the following set of patches will allow puppet to work with the
newer version of Ruby that we are using.

The first two are upstream commits and the third is a commit which
borrows a fix found in various puppet forks (repos which people host
to stabalize older versions of puppet). With these patches puppet can
now execute commands like 'help' and 'apply' without falling over.

Signed-off-by: Mark Asselstine <mark.asselstine at windriver.com>
---
 ...uplicate-key-which-ruby-2.2-complains-abo.patch | 30 ++++++++++++++++++
 ...aint-Change-spec-test-to-pass-on-ruby-2.2.patch | 37 ++++++++++++++++++++++
 ..._yaml-syck-isn-t-available-for-Ruby-2.0.0.patch | 35 ++++++++++++++++++++
 recipes-support/puppet/puppet_3.7.3.bb             |  3 ++
 4 files changed, 105 insertions(+)
 create mode 100644 recipes-support/puppet/puppet/MAINT-Fix-duplicate-key-which-ruby-2.2-complains-abo.patch
 create mode 100644 recipes-support/puppet/puppet/maint-Change-spec-test-to-pass-on-ruby-2.2.patch
 create mode 100644 recipes-support/puppet/puppet/safe_yaml-syck-isn-t-available-for-Ruby-2.0.0.patch

diff --git a/recipes-support/puppet/puppet/MAINT-Fix-duplicate-key-which-ruby-2.2-complains-abo.patch b/recipes-support/puppet/puppet/MAINT-Fix-duplicate-key-which-ruby-2.2-complains-abo.patch
new file mode 100644
index 0000000..696c642
--- /dev/null
+++ b/recipes-support/puppet/puppet/MAINT-Fix-duplicate-key-which-ruby-2.2-complains-abo.patch
@@ -0,0 +1,30 @@
+From 05dad9b1d30a8ff1e8e4a06bc5eaf0b19dab43e2 Mon Sep 17 00:00:00 2001
+From: Jasper Lievisse Adriaanse <jasper at humppa.nl>
+Date: Fri, 24 Jul 2015 20:18:08 +0200
+Subject: [PATCH] (MAINT) Fix duplicate key which ruby 2.2 complains about
+
+commit 05dad9b1d30a8ff1e8e4a06bc5eaf0b19dab43e2 from
+https://github.com/puppetlabs/puppet.git
+
+---
+ lib/puppet/defaults.rb | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/lib/puppet/defaults.rb b/lib/puppet/defaults.rb
+index eeefefa..b591697 100644
+--- a/lib/puppet/defaults.rb
++++ b/lib/puppet/defaults.rb
+@@ -486,10 +486,6 @@ module Puppet
+       :default    => "stomp",
+       :desc       => "Which type of queue to use for asynchronous processing.",
+     },
+-    :queue_type => {
+-      :default    => "stomp",
+-      :desc       => "Which type of queue to use for asynchronous processing.",
+-    },
+     :queue_source => {
+       :default    => "stomp://localhost:61613/",
+       :desc       => "Which type of queue to use for asynchronous processing.  If your stomp server requires
+-- 
+2.1.4
+
diff --git a/recipes-support/puppet/puppet/maint-Change-spec-test-to-pass-on-ruby-2.2.patch b/recipes-support/puppet/puppet/maint-Change-spec-test-to-pass-on-ruby-2.2.patch
new file mode 100644
index 0000000..73e1769
--- /dev/null
+++ b/recipes-support/puppet/puppet/maint-Change-spec-test-to-pass-on-ruby-2.2.patch
@@ -0,0 +1,37 @@
+From d183826136ca77847da5f3e460f2e460faabc5be Mon Sep 17 00:00:00 2001
+From: Kylo Ginsberg <kylo at puppetlabs.com>
+Date: Mon, 22 Dec 2014 10:11:38 -0800
+Subject: [PATCH] (maint) Change spec test to pass on ruby 2.2
+
+commit d183826136ca77847da5f3e460f2e460faabc5be from
+https://github.com/puppetlabs/puppet.git
+
+Prior to this change, this spec test failed on ruby 2.2.0-rc1 with:
+
+     Failure/Error: Time.stubs(:now).returns(Time.parse("2011-01-06 12:00:00 UTC"))
+     NoMethodError:
+       undefined method `utc_offset' for nil:NilClass
+
+I didn't track down the root cause of this failure, but just
+normalized this stub to use Time.utc, which (along with Time.local)
+is the more common way of stubbing Time objects in the codebase.
+---
+ spec/unit/reports/store_spec.rb | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/spec/unit/reports/store_spec.rb b/spec/unit/reports/store_spec.rb
+index 7f94f7d..f56eccd 100755
+--- a/spec/unit/reports/store_spec.rb
++++ b/spec/unit/reports/store_spec.rb
+@@ -24,7 +24,7 @@ describe processor do
+     end
+ 
+     it "should write the report to the file in YAML" do
+-      Time.stubs(:now).returns(Time.parse("2011-01-06 12:00:00 UTC"))
++      Time.stubs(:now).returns(Time.utc(2011,01,06,12,00,00))
+       @report.process
+ 
+       File.read(File.join(Puppet[:reportdir], @report.host, "201101061200.yaml")).should == @report.to_yaml
+-- 
+2.1.4
+
diff --git a/recipes-support/puppet/puppet/safe_yaml-syck-isn-t-available-for-Ruby-2.0.0.patch b/recipes-support/puppet/puppet/safe_yaml-syck-isn-t-available-for-Ruby-2.0.0.patch
new file mode 100644
index 0000000..1cd5e25
--- /dev/null
+++ b/recipes-support/puppet/puppet/safe_yaml-syck-isn-t-available-for-Ruby-2.0.0.patch
@@ -0,0 +1,35 @@
+From fca1579d62d5b978375511e062b9c18f4413dd5a Mon Sep 17 00:00:00 2001
+From: Mark Asselstine <mark.asselstine at windriver.com>
+Date: Thu, 20 Aug 2015 14:06:32 -0400
+Subject: [PATCH] safe_yaml: syck isn't available for Ruby >= 2.0.0
+
+This change was taken from various puppet forks but does not exist in
+puppet upstream as they drop support for YAML on the network as part
+of work to fix PUP-3272.
+
+https://tickets.puppetlabs.com/browse/PUP-3272
+
+Community versions of this change:
+https://github.com/kylog/puppet/commit/42b2e77ec24dfbbf2317d08615a35127afbc4782
+
+Signed-off-by: Mark Asselstine <mark.asselstine at windriver.com>
+---
+ lib/puppet/vendor/safe_yaml/lib/safe_yaml.rb | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/puppet/vendor/safe_yaml/lib/safe_yaml.rb b/lib/puppet/vendor/safe_yaml/lib/safe_yaml.rb
+index 8670ace..722dd3e 100644
+--- a/lib/puppet/vendor/safe_yaml/lib/safe_yaml.rb
++++ b/lib/puppet/vendor/safe_yaml/lib/safe_yaml.rb
+@@ -3,7 +3,7 @@ require "yaml"
+ # This needs to be defined up front in case any internal classes need to base
+ # their behavior off of this.
+ module SafeYAML
+-  YAML_ENGINE = defined?(YAML::ENGINE) ? YAML::ENGINE.yamler : "syck"
++  YAML_ENGINE = defined?(YAML::ENGINE) ? YAML::ENGINE.yamler : (defined?(Psych) && YAML == Psych ? "psych" : "syck")
+ end
+ 
+ require "set"
+-- 
+2.1.4
+
diff --git a/recipes-support/puppet/puppet_3.7.3.bb b/recipes-support/puppet/puppet_3.7.3.bb
index 14e18d9..3e8f869 100644
--- a/recipes-support/puppet/puppet_3.7.3.bb
+++ b/recipes-support/puppet/puppet_3.7.3.bb
@@ -7,6 +7,9 @@ SRC_URI = " \
     https://downloads.puppetlabs.com/puppet/puppet-${PV}.tar.gz \
     file://add_puppet_gemspec.patch \
     file://puppet.conf \
+    file://maint-Change-spec-test-to-pass-on-ruby-2.2.patch \
+    file://MAINT-Fix-duplicate-key-which-ruby-2.2-complains-abo.patch \
+    file://safe_yaml-syck-isn-t-available-for-Ruby-2.0.0.patch \
 "
 SRC_URI[md5sum] = "cc294da1d51df07bcc7f6cf78bd90ce0"
 SRC_URI[sha256sum] = "4a3bd7ddb51072c3dd898a8de158cde204a2d8fd0b84e8ac806b84c074348637"
-- 
2.1.4



More information about the meta-virtualization mailing list