summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xlib/puppet/provider/package/apt.rb7
-rw-r--r--lib/puppet/util/package.rb3
-rwxr-xr-xtest/util/package.rb2
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