in itchef/cookbooks/cpe_helpers/libraries/cpe_helpers.rb [364:396]
def self.rpm_cmpver(verstr1, verstr2, compare_epoch = false)
e1, v1, r1 = rpm_parsever(verstr1)
e2, v2, r2 = rpm_parsever(verstr2)
v1 = rpm_sanitize_postrelease_ver(v1)
v2 = rpm_sanitize_postrelease_ver(v2)
if compare_epoch
if e1 > e2
return 1
elsif e1 < e2
return -1
end
end
if v1 > v2
1
elsif v1 < v2
-1
else
parsed_rel1 = rpm_parserel(r1)
parsed_rel2 = rpm_parserel(r2)
if parsed_rel1[0] > parsed_rel2[0]
1
elsif parsed_rel1[0] < parsed_rel2[0]
-1
elsif parsed_rel1[1] > parsed_rel2[1]
1
elsif parsed_rel1[1] < parsed_rel2[1]
-1
else
0
end
end
end