diff options
author | Benedikt Boehm <hollow@gentoo.org> | 2009-11-16 20:18:50 +0000 |
---|---|---|
committer | Benedikt Boehm <hollow@gentoo.org> | 2009-11-16 20:18:50 +0000 |
commit | dd9416fcf0beeed749d9219bffff28543d19b259 (patch) | |
tree | 43648e315f45db4700c9611e06fa0101df6782d3 /app-admin/puppet/files | |
parent | ia64/s390/sh/sparc stable wrt #287575 (diff) | |
download | historical-dd9416fcf0beeed749d9219bffff28543d19b259.tar.gz historical-dd9416fcf0beeed749d9219bffff28543d19b259.tar.bz2 historical-dd9416fcf0beeed749d9219bffff28543d19b259.zip |
version bump + backported portage provider for eix-0.18 compatibility (see #287714)
Package-Manager: portage-2.2_rc49/cvs/Linux i686
Diffstat (limited to 'app-admin/puppet/files')
-rw-r--r-- | app-admin/puppet/files/puppet-0.25.1-eix-0.18.patch | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/app-admin/puppet/files/puppet-0.25.1-eix-0.18.patch b/app-admin/puppet/files/puppet-0.25.1-eix-0.18.patch new file mode 100644 index 000000000000..438507e9a072 --- /dev/null +++ b/app-admin/puppet/files/puppet-0.25.1-eix-0.18.patch @@ -0,0 +1,111 @@ +diff --git a/lib/puppet/provider/package/portage.rb b/lib/puppet/provider/package/portage.rb +index e920580..2a8654c 100644 +--- a/lib/puppet/provider/package/portage.rb ++++ b/lib/puppet/provider/package/portage.rb +@@ -1,7 +1,6 @@ + require 'puppet/provider/package' + + Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Package do +- include Puppet::Util::Execution + desc "Provides packaging support for Gentoo's portage system." + + has_feature :versionable +@@ -13,33 +12,32 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa + defaultfor :operatingsystem => :gentoo + + def self.instances +- result_format = /(\S+) (\S+) \[(?:([0-9.a-zA-Z]+(?:_(?:alpha|beta|pre|rc|p)[0-9]*)*(?:-r[0-9]*)?)(?:\([^\)]+\))?(?:\[([^\]]+)\])?[ ]*)*\] \[(?:(?:\{M\})?(?:\([~*]+\))?([0-9.a-zA-Z]+(?:_(?:alpha|beta|pre|rc|p)[0-9]*)*(?:-r[0-9]*)?)(?:\(([^\)]+)\))?(?:![mf])*(?:\[([^\]]+)\])?)?\] ([\S]*) (.*)/ +- result_fields = [:category, :name, :ensure, :ensure_overlay, :version_available, :slot, :overlay, :vendor, :description] ++ result_format = /(\S+) (\S+) \[(\S+)\] \[(\S+)\] (\S+) (.*)/ ++ result_fields = [:category, :name, :ensure, :version_available, :vendor, :description] + +- version_format = "<version>{!last} {}" +- search_format = "<category> <name> [<installedversions:SPLITVERSIONS>] [<bestversion:SPLITVERSIONS>] <homepage> <description>" ++ version_format = "{last}<version>{}" ++ search_format = "<category> <name> [<installedversions:LASTVERSION>] [<bestversion:LASTVERSION>] <homepage> <description>\n" + + begin + if !FileUtils.uptodate?("/var/cache/eix", %w(/usr/bin/eix /usr/portage/metadata/timestamp)) + update_eix + end ++ + search_output = nil +- withenv :SPLITVERSIONS => version_format do +- search_output = eix "--nocolor", "--pure-packages", "--installed", "--format", search_format ++ Puppet::Util::Execution.withenv :LASTVERSION => version_format do ++ search_output = eix "--nocolor", "--pure-packages", "--stable", "--installed", "--format", search_format + end + + packages = [] + search_output.each do |search_result| +- match = result_format.match( search_result ) ++ match = result_format.match(search_result) + + if match + package = {} +- result_fields.zip(match.captures) { |field, value| ++ result_fields.zip(match.captures) do |field, value| + package[field] = value unless !value or value.empty? +- } ++ end + package[:provider] = :portage +- package[:ensure] = package[:ensure].split.last +- + packages << new(package) + end + end +@@ -74,36 +72,35 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa + end + + def query +- result_format = /(\S+) (\S+) \[(?:([0-9.a-zA-Z]+(?:_(?:alpha|beta|pre|rc|p)[0-9]*)*(?:-r[0-9]*)?)(?:\([^\)]+\))?(?:\[([^\]]+)\])?[ ]*)*\] \[(?:(?:\{M\})?(?:\([~*]+\))?([0-9.a-zA-Z]+(?:_(?:alpha|beta|pre|rc|p)[0-9]*)*(?:-r[0-9]*)?)(?:\(([^\)]+)\))?(?:![mf])*(?:\[([^\]]+)\])?)?\] ([\S]*) (.*)/ +- result_fields = [:category, :name, :ensure, :ensure_overlay, :version_available, :slot, :overlay, :vendor, :description] ++ result_format = /(\S+) (\S+) \[(\S+)\] \[(\S+)\] (\S+) (.*)/ ++ result_fields = [:category, :name, :ensure, :version_available, :vendor, :description] ++ ++ version_format = "{last}<version>{}" ++ search_format = "<category> <name> [<installedversions:LASTVERSION>] [<bestversion:LASTVERSION>] <homepage> <description>\n" + + search_field = package_name.count('/') > 0 ? "--category-name" : "--name" + search_value = package_name + +- version_format = "<version>{!last} {}" +- search_format = "<category> <name> [<installedversions:FORMAT_PVERSION>] [<bestversion:FORMAT_PVERSION>] <homepage> <description>" +- + begin + if !FileUtils.uptodate?("/var/cache/eix", %w(/usr/bin/eix /usr/portage/metadata/timestamp)) + update_eix + end ++ + search_output = nil +- withenv :SPLITVERSIONS => version_format do +- search_output = eix "--nocolor", "--pure-packages", "--format", search_format, "--exact", search_field, search_value ++ Puppet::Util::Execution.withenv :LASTVERSION => version_format do ++ search_output = eix "--nocolor", "--pure-packages", "--stable", "--format", search_format, "--exact", search_field, search_value + end + + packages = [] + search_output.each do |search_result| +- match = result_format.match( search_result ) ++ match = result_format.match(search_result) + +- if( match ) ++ if match + package = {} +- result_fields.zip( match.captures ) { |field, value| package[field] = value unless !value or value.empty? } +- if package[:ensure] +- package[:ensure] = package[:ensure].split.last +- else +- package[:ensure] = :absent ++ result_fields.zip(match.captures) do |field, value| ++ package[field] = value unless !value or value.empty? + end ++ package[:ensure] = package[:ensure] ? package[:ensure] : :absent + packages << package + end + end +@@ -126,4 +123,3 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa + return self.query[:version_available] + end + end +- |