From 8b81c61396f0eba2fcebcba29eb6f569877becc9 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Tue, 18 Jun 2013 07:55:03 -0400
Subject: [PATCH] Fix so install do not fail when one of DB driver checks fails but other drivers exist (#1489178)

---
 CHANGELOG                   |    1 +
 installer/rcube_install.php |    7 +++++--
 installer/check.php         |    6 +++++-
 3 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 448307f..9d2cd12 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
+- Fix so install do not fail when one of DB driver checks fails but other drivers exist (#1489178)
 - Fix so exported vCard specifies encoding in v3-compatible format (#1489183)
 
 RELEASE 0.9.2
diff --git a/installer/check.php b/installer/check.php
index fcf3502..bea8c42 100644
--- a/installer/check.php
+++ b/installer/check.php
@@ -139,10 +139,11 @@
     if (extension_loaded($ext)) {
         // MySQL driver requires PHP >= 5.3 (#1488875)
         if ($ext == 'pdo_mysql' && version_compare(PHP_VERSION, '5.3.0', '<')) {
-            $RCI->fail($database, 'PHP >= 5.3 required');
+            $RCI->fail($database, 'PHP >= 5.3 required', null, true);
         }
         else {
             $RCI->pass($database);
+            $found_db_driver = true;
         }
     }
     else {
@@ -152,6 +153,9 @@
     }
     echo '<br />';
 }
+if (empty($found_db_driver)) {
+  $RCI->failures++;
+}
 
 ?>
 
diff --git a/installer/rcube_install.php b/installer/rcube_install.php
index ce9ddfc..43e6407 100644
--- a/installer/rcube_install.php
+++ b/installer/rcube_install.php
@@ -495,10 +495,13 @@
    * @param string Test name
    * @param string Error message
    * @param string URL for details
+   * @param bool   Do not count this failure
    */
-  function fail($name, $message = '', $url = '')
+  function fail($name, $message = '', $url = '', $optional=false)
   {
-    $this->failures++;
+    if (!$optional) {
+      $this->failures++;
+    }
 
     echo Q($name) . ':&nbsp; <span class="fail">NOT OK</span>';
     $this->_showhint($message, $url);

--
Gitblit v1.9.1