diff --git a/Library/Homebrew/livecheck/strategy/gnome.rb b/Library/Homebrew/livecheck/strategy/gnome.rb index 49baed77c6..ecf11c7d25 100644 --- a/Library/Homebrew/livecheck/strategy/gnome.rb +++ b/Library/Homebrew/livecheck/strategy/gnome.rb @@ -66,7 +66,7 @@ module Homebrew # GNOME archive files seem to use a standard filename format, so we # count on the delimiter between the package name and numeric # version being a hyphen and the file being a tarball. - values[:regex] = /#{regex_name}-(\d+(?:\.\d+)+)\.t/i + values[:regex] = /#{regex_name}-(\d+(?:\.\d+)*)\.t/i values end @@ -99,7 +99,11 @@ module Homebrew # Filter out unstable versions using the old version scheme where # the major version is below 40. version_data[:matches].reject! do |_, version| - version.major < 40 && (version.minor >= 90 || version.minor.to_i.odd?) + next if version.major >= 40 + next if version.minor.blank? + + (version.minor.to_i.odd? || version.minor >= 90) || + (version.patch.present? && version.patch >= 90) end end diff --git a/Library/Homebrew/test/livecheck/strategy/gnome_spec.rb b/Library/Homebrew/test/livecheck/strategy/gnome_spec.rb index 03d33dd4f7..6da013d92d 100644 --- a/Library/Homebrew/test/livecheck/strategy/gnome_spec.rb +++ b/Library/Homebrew/test/livecheck/strategy/gnome_spec.rb @@ -12,7 +12,7 @@ describe Homebrew::Livecheck::Strategy::Gnome do let(:generated) { { url: "https://download.gnome.org/sources/abc/cache.json", - regex: /abc-(\d+(?:\.\d+)+)\.t/i, + regex: /abc-(\d+(?:\.\d+)*)\.t/i, } }