Hello community,

here is the log from the commit of package rubygem-puppet for openSUSE:Factory 
checked in at 2015-05-29 10:41:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-puppet (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-puppet.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-puppet"

Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-puppet/rubygem-puppet.changes    
2015-01-22 21:49:03.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-puppet.new/rubygem-puppet.changes       
2015-05-29 10:41:36.000000000 +0200
@@ -1,0 +2,30 @@
+Thu May 28 07:49:27 UTC 2015 - [email protected]
+
+- Updated the change file
+
+-------------------------------------------------------------------
+Thu May 14 19:31:57 UTC 2015 - [email protected]
+
+- Add puppet-ruby-2_2.patch that fixes the ruby 2.2 support
+
+-------------------------------------------------------------------
+Tue May 12 10:51:13 UTC 2015 - [email protected]
+
+- Re-run g2r
+- Fix the systemd patch to actually apply
+- Remove the ext/{debian,gentoo} dirs for all ruby versions
+
+-------------------------------------------------------------------
+Mon May 11 12:51:28 UTC 2015 - [email protected]
+
+- Update to 3.7.5
+  * 
https://docs.puppetlabs.com/puppet/3.7/reference/release_notes.html#puppet-374
+  * 
https://docs.puppetlabs.com/puppet/3.7/reference/release_notes.html#puppet-375
+- Add upstream patch puppet-zypper-lu.patch to cache the output of zypper 
list-updates
+  https://tickets.puppetlabs.com/browse/PUP-3968
+- Add upstream patch puppet-systemd-default.patch to make systemd default on 
SLE12 and openSUSE >12.x
+  https://tickets.puppetlabs.com/browse/PUP-3338
+- Add runtime dependency on tar, needed by the "puppet module" command to
+  unpack tarballs that it fetches from the forge
+
+-------------------------------------------------------------------

Old:
----
  puppet-3.7.3.gem

New:
----
  puppet-3.7.5.gem
  puppet-ruby-2_2.patch
  puppet-systemd-default.patch
  puppet-zypper-lu.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rubygem-puppet.spec ++++++
--- /var/tmp/diff_new_pack.y8U6cK/_old  2015-05-29 10:41:37.000000000 +0200
+++ /var/tmp/diff_new_pack.y8U6cK/_new  2015-05-29 10:41:37.000000000 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package rubygem-puppet
 #
-# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -24,7 +24,7 @@
 #
 
 Name:           rubygem-puppet
-Version:        3.7.3
+Version:        3.7.5
 Release:        0
 %define mod_name puppet
 %define mod_full_name %{mod_name}-%{version}
@@ -43,6 +43,7 @@
 BuildRequires: fdupes
 Requires(pre): /usr/sbin/groupadd
 Requires(pre): /usr/sbin/useradd
+Requires:      tar
 %if 0%{?suse_version} >= 1210
 BuildRequires: systemd
 %{?systemd_requires}
@@ -62,6 +63,11 @@
 Source1:        puppetmaster.fw
 Source2:        puppet.fw
 Source3:        gem2rpm.yml
+# MANUAL
+Patch0:  %{mod_name}-zypper-lu.patch
+Patch1:  %{mod_name}-systemd-default.patch
+Patch2:  %{mod_name}-ruby-2_2.patch
+# /MANUAL
 Summary:        A network tool for managing many disparate systems
 License:        Apache-2.0
 Group:          Development/Languages/Ruby
@@ -74,6 +80,11 @@
 cron jobs, and hosts, along with obviously discrete elements like
 packages, services, and files.
 %prep
+%gem_unpack
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%gem_build
 
 %build
 
@@ -132,7 +143,10 @@
 install -Dp -m0644 $gemdir/ext/emacs/puppet-mode-init.el 
$emacsdir/site-start.d/puppet-mode-init.el
 
 # Remove those dirs as they cause strange runtime dependencies
-rm -rf $gemdir/ext/{debian,gentoo}
+for gem in $(/usr/bin/ruby-find-versioned gem) ; do
+    gemdir="%{buildroot}$($gem env gemdir)/gems/%{mod_full_name}"
+    rm -rf $gemdir/ext/{debian,gentoo}
+done
 # /MANUAL
 
 
@@ -198,7 +212,7 @@
 %{?systemd_requires}
 %endif
 
-# Requires:      rubygem-puppet = 3.7.3
+# Requires:      rubygem-puppet = 3.7.5
 %description master
 Puppet lets you centrally manage every important aspect of your system
 using a cross-platform specification language that manages all the
@@ -282,7 +296,7 @@
 Provides:    puppet-vim = %{version}-%{release}
 Obsoletes:   puppet-vim < %{version}-%{release}
 
-# Requires:      rubygem-puppet = 3.7.3
+# Requires:      rubygem-puppet = 3.7.5
 %description vim
 Vim ftdetect and syntax files for Puppet manifests
 
@@ -305,7 +319,7 @@
 Supplements: packageand(emacs:%{name})
 Provides:    puppet-emacs = %{version}-%{release}
 
-# Requires:      rubygem-puppet = 3.7.3
+# Requires:      rubygem-puppet = 3.7.5
 %description emacs
 Emacs syntax files for Puppet manifests
 

++++++ gem2rpm.yml ++++++
--- /var/tmp/diff_new_pack.y8U6cK/_old  2015-05-29 10:41:37.000000000 +0200
+++ /var/tmp/diff_new_pack.y8U6cK/_new  2015-05-29 10:41:37.000000000 +0200
@@ -9,6 +9,10 @@
   separate elements normally aggregated in different files, like users,
   cron jobs, and hosts, along with obviously discrete elements like
   packages, services, and files.
+:patches:
+  '%{mod_name}-zypper-lu.patch': -p1
+  '%{mod_name}-systemd-default.patch': -p1
+  '%{mod_name}-ruby-2_2.patch': -p1
 :main:
   :preamble: |-
     Provides:   %{mod_name} = %{version}-%{release}
@@ -34,6 +38,7 @@
   BuildRequires: fdupes
   Requires(pre): /usr/sbin/groupadd
   Requires(pre): /usr/sbin/useradd
+  Requires:      tar
   %if 0%{?suse_version} >= 1210
   BuildRequires: systemd
   %{?systemd_requires}
@@ -91,7 +96,10 @@
   install -Dp -m0644 $gemdir/ext/emacs/puppet-mode-init.el 
$emacsdir/site-start.d/puppet-mode-init.el
 
   # Remove those dirs as they cause strange runtime dependencies
-  rm -rf $gemdir/ext/{debian,gentoo}
+  for gem in $(/usr/bin/ruby-find-versioned gem) ; do
+      gemdir="%{buildroot}$($gem env gemdir)/gems/%{mod_full_name}"
+      rm -rf $gemdir/ext/{debian,gentoo}
+  done
 :scripts:
   :pre: |-
     getent group puppet >/dev/null || /usr/sbin/groupadd -r puppet

++++++ puppet-3.7.3.gem -> puppet-3.7.5.gem ++++++
++++ 16331 lines of diff (skipped)

++++++ puppet-ruby-2_2.patch ++++++
--- a/lib/puppet/vendor/safe_yaml/lib/safe_yaml/syck_node_monkeypatch.rb        
2015-05-12 20:28:38.540000000 +0200
+++ b/lib/puppet/vendor/safe_yaml/lib/safe_yaml/syck_node_monkeypatch.rb     
2015-05-12 20:28:54.708000000 +0200
@@ -39,5 +39,7 @@
 if defined?(YAML::Syck::Node)
   YAML::Syck.module_eval monkeypatch
 else
-  Syck.module_eval monkeypatch
+  if defined?(Syck)
+    Syck.module_eval monkeypatch
+  end
 end
++++++ puppet-systemd-default.patch ++++++
>From bdd0dfdda47032a269b42a53c864fe91856eaedd Mon Sep 17 00:00:00 2001
From: Rob Braden <[email protected]>
Date: Wed, 24 Sep 2014 11:41:51 -0700
Subject: [PATCH] (pup-3338) Make systemd the default service provider for SLES
 12

OpenSuSE >= 12 and SLES 12 use systemd as the default service management 
framework. This
updates puppet to use the systemd provider by default on OpenSuSE 12 and 13 and
SLES 12
---
 lib/puppet/provider/service/systemd.rb     |  1 +
 spec/unit/provider/service/systemd_spec.rb | 18 ++++++++++++++++++
 2 files changed, 19 insertions(+)

diff --git a/lib/puppet/provider/service/systemd.rb 
b/lib/puppet/provider/service/systemd.rb
index eb6df29..e717049 100644
--- a/lib/puppet/provider/service/systemd.rb
+++ b/lib/puppet/provider/service/systemd.rb
@@ -8,6 +8,7 @@
   defaultfor :osfamily => [:archlinux]
   defaultfor :osfamily => :redhat, :operatingsystemmajrelease => "7"
   defaultfor :osfamily => :redhat, :operatingsystem => :fedora, 
:operatingsystemmajrelease => ["17", "18", "19", "20", "21"]
+  defaultfor :osfamily => :suse, :operatingsystemmajrelease => ["12", "13"]
 
   def self.instances
     i = []
++++++ puppet-zypper-lu.patch ++++++
>From 358cabca903e019b863d654a74711581bc14b331 Mon Sep 17 00:00:00 2001
From: Theo Chatzimichos <[email protected]>
Date: Thu, 5 Feb 2015 22:06:08 +0100
Subject: [PATCH] (PUP-3968) Cache the `zypper list-updates` output

The zypper provider calls `zypper list-updates` in order to get a list of the
packages that have newer versions. Then it checks if the resource name matches
any of the items in the list, and then applies the newer version. The problem
with the above though is that it runs list-updates for every single package
instance, while it should be run only once, as it provides all the packages
that have newer versions available.

This commit caches the list-updates output and puts its contents in a hash, so
that each package resource will query this instead of zypper directly

Signed-off-by: Adrien Thebo <[email protected]>
---
 lib/puppet/provider/package/zypper.rb     | 34 +++++++++++++++++++++++--------
 spec/unit/provider/package/zypper_spec.rb |  2 +-
 2 files changed, 27 insertions(+), 9 deletions(-)

diff --git a/lib/puppet/provider/package/zypper.rb 
b/lib/puppet/provider/package/zypper.rb
index 2fe6cdf..c74358c 100644
--- a/lib/puppet/provider/package/zypper.rb
+++ b/lib/puppet/provider/package/zypper.rb
@@ -12,6 +12,30 @@
 
   confine    :operatingsystem => [:suse, :sles, :sled, :opensuse]
 
+  def self.latest_package_version(package)
+    if @latest_versions.nil?
+      @latest_versions = list_updates
+    end
+
+    @latest_versions[package]
+  end
+
+  def self.list_updates
+    output = zypper 'list-updates'
+
+    avail_updates = {}
+
+    # split up columns
+    output.lines.each do |line|
+      pkg_ver = line.split(/\s*\|\s*/)
+      # ignore zypper headers
+      next unless pkg_ver[0] == 'v'
+      avail_updates[pkg_ver[2]] = pkg_ver[4]
+    end
+
+    avail_updates
+  end
+
   #on zypper versions <1.0, the version option returns 1
   #some versions of zypper output on stderr
   def zypper_version
@@ -72,16 +96,10 @@ def install
 
   # What's the latest package version available?
   def latest
-    #zypper can only get a list of *all* available packages?
-    output = zypper "list-updates"
-
-    if output =~ /#{Regexp.escape @resource[:name]}\s*\|.*?\|\s*([^\s\|]+)/
-      return $1
-    else
+    return self.class.latest_package_version(@resource[:name]) ||
       # zypper didn't find updates, pretend the current
       # version is the latest
-      return @property_hash[:ensure]
-    end
+      @property_hash[:ensure]
   end
 
   def update
diff --git a/spec/unit/provider/package/zypper_spec.rb 
b/spec/unit/provider/package/zypper_spec.rb
index 3265858..73389fe 100755
--- a/spec/unit/provider/package/zypper_spec.rb
+++ b/spec/unit/provider/package/zypper_spec.rb
@@ -119,7 +119,7 @@
       fake_data = File.read(my_fixture('zypper-list-updates-SLES11sp1.out'))
 
       @resource.stubs(:[]).with(:name).returns "at"
-      @provider.expects(:zypper).with("list-updates").returns fake_data
+      described_class.expects(:zypper).with("list-updates").returns fake_data
       @provider.latest.should == "3.1.8-1069.18.2"
     end
   end

Reply via email to