diff options
-rwxr-xr-x | lib/puppet/provider/package/apt.rb | 7 | ||||
-rw-r--r-- | lib/puppet/util/package.rb | 3 | ||||
-rwxr-xr-x | test/util/package.rb | 2 |
3 files changed, 5 insertions, 7 deletions
diff --git a/lib/puppet/provider/package/apt.rb b/lib/puppet/provider/package/apt.rb index 275e96222..6fa70e56a 100755 --- a/lib/puppet/provider/package/apt.rb +++ b/lib/puppet/provider/package/apt.rb @@ -84,7 +84,7 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg do if output =~ /Versions:\s*\n((\n|.)+)^$/ versions = $1 - version = versions.split(/\n/).collect { |version| + available_versions = versions.split(/\n/).collect { |version| if version =~ /^([^\(]+)\(/ $1 else @@ -95,14 +95,15 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg do versioncmp(a,b) } - unless version.length > 0 + if available_versions.length == 0 self.debug "No latest version" if Puppet[:debug] print output end end - return version.shift + # Get the latest and greatest version number + return available_versions.pop else self.err "Could not match string" end diff --git a/lib/puppet/util/package.rb b/lib/puppet/util/package.rb index da07bdae4..00e04f64a 100644 --- a/lib/puppet/util/package.rb +++ b/lib/puppet/util/package.rb @@ -2,9 +2,6 @@ require 'puppet' module Puppet::Util::Package def versioncmp(version_a, version_b) - # Invert the sort order, so higher versions always end up first. - version_a, version_b = version_b, version_a - vre = /[-.]|\d+|[^-.\d]+/ ax = version_a.scan(vre) bx = version_b.scan(vre) diff --git a/test/util/package.rb b/test/util/package.rb index 22bc4c4e4..73b069f84 100755 --- a/test/util/package.rb +++ b/test/util/package.rb @@ -20,7 +20,7 @@ class TestPuppetUtilPackage < Test::Unit::TestCase versioncmp(a,b) } end - assert_equal(["3.1", "3.0", "2.40.2", "2.4b", "2.4", "2.4", "2.3a.1", "2.3.1", "2.3.0", "2.3", "1.5", "1.2", "1.1a", "1.1.a", "1.1.6", "1.1-5", "1.1-4", "1.1-3", "1.06", "1", "0002"], newary, "versions did not sort correctly") + assert_equal(["0002", "1", "1.06", "1.1-3", "1.1-4", "1.1-5", "1.1.6", "1.1.a", "1.1a", "1.2", "1.5", "2.3", "2.3.0", "2.3.1", "2.3a.1", "2.4", "2.4", "2.4b", "2.40.2", "3.0", "3.1"], newary) end end |