self.rpm_cmpver

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