From e7fa2ce56d0c9e3d791f3c145febbb9ab16be838 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Tue, 18 Jun 2013 13:54:26 +0200 Subject: [PATCH] Fix so install do not fail when one of DB driver checks fails but other drivers exist (#1489178) --- CHANGELOG | 1 + installer/check.php | 6 +++++- installer/rcube_install.php | 7 +++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index bac9ee1cf..66db4207a 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) - Fix session issues when local and database time differs (#1486132) - Fix thread cache syncronization/validation (#1489028) diff --git a/installer/check.php b/installer/check.php index fcf35025e..bea8c42e0 100644 --- a/installer/check.php +++ b/installer/check.php @@ -139,10 +139,11 @@ foreach ($RCI->supported_dbs as $database => $ext) { 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 @@ foreach ($RCI->supported_dbs as $database => $ext) { } echo '
'; } +if (empty($found_db_driver)) { + $RCI->failures++; +} ?> diff --git a/installer/rcube_install.php b/installer/rcube_install.php index c95d936d2..473fd2612 100644 --- a/installer/rcube_install.php +++ b/installer/rcube_install.php @@ -496,10 +496,13 @@ class rcube_install * @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) . ':  NOT OK'; $this->_showhint($message, $url);