]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1786951: Make the update check work on the 5.0.4 branch (#147)
authorDave Miller <justdave@bugzilla.org>
Sat, 18 Nov 2023 08:23:41 +0000 (03:23 -0500)
committerGitHub <noreply@github.com>
Sat, 18 Nov 2023 08:23:41 +0000 (03:23 -0500)
* Bug 1786951: Make the update check work on the 5.0.4 branch

Bugzilla/Update.pm

index 72a7108a8e344518fa49990d4485715a20746148..c01f45e4c22c1e434294abd92a8d0c5e0a3eeb9f 100644 (file)
@@ -56,7 +56,7 @@ sub get_notifications {
 
     # On which branch is the current installation running?
     my @current_version =
-        (BUGZILLA_VERSION =~ m/^(\d+)\.(\d+)(?:(rc|\.)(\d+))?\+?$/);
+        (BUGZILLA_VERSION =~ m/^(\d+)\.(\d+)(?:\.(\d+))?(?:(rc|\.)(\d+))?\+?$/);
 
     my @release;
     if (Bugzilla->params->{'upgrade_notification'} eq 'development_snapshot') {
@@ -73,7 +73,8 @@ sub get_notifications {
     elsif (Bugzilla->params->{'upgrade_notification'} eq 'stable_branch_release') {
         # We want the latest stable version for the current branch.
         # If we are running a development snapshot, we won't match anything.
-        my $branch_version = $current_version[0] . '.' . $current_version[1];
+        # This is the 5.0.4 branch and it won't branch again so just hardcode this.
+        my $branch_version = '5.0.4';
 
         # We do a string comparison instead of a numerical one, because
         # e.g. 2.2 == 2.20, but 2.2 ne 2.20 (and 2.2 is indeed much older).
@@ -97,12 +98,12 @@ sub get_notifications {
     # Only notify the administrator if the latest version available
     # is newer than the current one.
     my @new_version =
-        ($release[0]->{'latest_ver'} =~ m/^(\d+)\.(\d+)(?:(rc|\.)(\d+))?\+?$/);
+        ($release[0]->{'latest_ver'} =~ m/^(\d+)\.(\d+)(?:\.(\d+))?(?:(rc|\.)(\d+))?\+?$/);
 
     # We convert release candidates 'rc' to integers (rc ? 0 : 1) in order
     # to compare versions easily.
-    $current_version[2] = ($current_version[2] && $current_version[2] eq 'rc') ? 0 : 1;
-    $new_version[2] = ($new_version[2] && $new_version[2] eq 'rc') ? 0 : 1;
+    @current_version = map { s/^(?:rc|)$/0/; s/^\.$/1/; $_; } @current_version;
+    @new_version = map { s/^(?:rc|)$/0/; s/^\.$/1/; $_; } @new_version;
 
     my $is_newer = _compare_versions(\@current_version, \@new_version);
     return ($is_newer == 1) ? {'data' => $release[0]} : undef;