aboutsummaryrefslogtreecommitdiffstats
path: root/Bugzilla/DB.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Bugzilla/DB.pm')
-rw-r--r--Bugzilla/DB.pm18
1 files changed, 17 insertions, 1 deletions
diff --git a/Bugzilla/DB.pm b/Bugzilla/DB.pm
index 5bc83f9d6..f59a32feb 100644
--- a/Bugzilla/DB.pm
+++ b/Bugzilla/DB.pm
@@ -204,17 +204,33 @@ sub bz_check_server_version {
$self->disconnect;
my $sql_want = $db->{db_version};
+ my $sql_dontwant = exists $db->{db_blocklist} ? $db->{db_blocklist} : [];
my $version_ok = vers_cmp($sql_vers, $sql_want) > -1 ? 1 : 0;
+ my $blocklisted;
+ if ($version_ok) {
+ $blocklisted = grep($sql_vers =~ /$_/, @$sql_dontwant);
+ $version_ok = 0 if $blocklisted;
+ }
my $sql_server = $db->{name};
if ($output) {
Bugzilla::Install::Requirements::_checking_for({
package => $sql_server, wanted => $sql_want,
- found => $sql_vers, ok => $version_ok });
+ found => $sql_vers, ok => $version_ok,
+ blocklisted => $blocklisted });
}
# Check what version of the database server is installed and let
# the user know if the version is too old to be used with Bugzilla.
+ if ($blocklisted) {
+ die <<EOT;
+
+Your $sql_server v$sql_vers is blocklisted. Please check the
+release notes for details or try a different database engine
+or version.
+
+EOT
+ }
if (!$version_ok) {
die <<EOT;