diff options
author | mkanat%kerio.com <> | 2005-05-27 05:09:22 +0200 |
---|---|---|
committer | mkanat%kerio.com <> | 2005-05-27 05:09:22 +0200 |
commit | 1af7f272868e1d7fa84c69be59be55abd62993d2 (patch) | |
tree | ff06e4732e6aeaa9e8eaf638da518e7e28786a9a /checksetup.pl | |
parent | 31985208f02a64aed42d915663504ba2eefd6bcf (diff) | |
download | bugzilla-1af7f272868e1d7fa84c69be59be55abd62993d2.tar.gz bugzilla-1af7f272868e1d7fa84c69be59be55abd62993d2.tar.xz |
Bug 286672: Require correct DBD depending on the $db_driver in use
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=justdave
Diffstat (limited to 'checksetup.pl')
-rwxr-xr-x | checksetup.pl | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/checksetup.pl b/checksetup.pl index ef3d80735..7151b86bf 100755 --- a/checksetup.pl +++ b/checksetup.pl @@ -300,10 +300,6 @@ my $modules = [ version => '1.38' }, { - name => 'DBD::mysql', - version => '2.9003' - }, - { name => 'File::Spec', version => '0.82' }, @@ -1469,9 +1465,27 @@ $::ENV{'PATH'} = $origPath; if ($my_db_check) { # Do we have the database itself? + # Unfortunately, $my_db_driver doesn't map perfectly between DBD + # and Bugzilla::DB. We need to fix the case a bit. + (my $dbd_name = trim($my_db_driver)) =~ s/(\w+)/\u\L$1/g; + # And MySQL is special, because it's all lowercase in DBD. + $dbd_name = 'mysql' if $dbd_name eq 'Mysql'; + + my $dbd = "DBD::$dbd_name"; + unless (eval("require $dbd")) { + print "Bugzilla requires that perl's $dbd be installed.\n" + . "To install this module, you can do:\n " + . " " . install_command($dbd) . "\n"; + exit; + } + my $dbh = Bugzilla::DB::connect_main("no database connection"); my $sql_want = $dbh->REQUIRED_VERSION; my $sql_server = $dbh->PROGRAM_NAME; + my $dbd_ver = $dbh->DBD_VERSION; + unless (have_vers($dbd, $dbd_ver)) { + die "Bugzilla requires at least version $dbd_ver of $dbd."; + } printf("Checking for %15s %-9s ", $sql_server, "(v$sql_want)") unless $silent; my $sql_vers = $dbh->bz_server_version; |