logo       
Google Custom Search
    AddThis Social Bookmark Button

cvs: pear-core /PEAR Dependency2.php: msg#00115

Subject: cvs: pear-core /PEAR Dependency2.php
cellog          Wed May 11 22:42:57 2005 EDT

  Modified files:              
    /pear-core/PEAR     Dependency2.php 
  Log:
  fix extension dependency versioned conflicts
  
http://cvs.php.net/diff.php/pear-core/PEAR/Dependency2.php?r1=1.38&r2=1.39&ty=u
Index: pear-core/PEAR/Dependency2.php
diff -u pear-core/PEAR/Dependency2.php:1.38 pear-core/PEAR/Dependency2.php:1.39
--- pear-core/PEAR/Dependency2.php:1.38 Wed May 11 22:29:09 2005
+++ pear-core/PEAR/Dependency2.php      Wed May 11 22:42:57 2005
@@ -15,7 +15,7 @@
  * @author     Greg Beaver <cellog@xxxxxxx>
  * @copyright  1997-2005 The PHP Group
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    CVS: $Id: Dependency2.php,v 1.38 2005/05/12 02:29:09 cellog Exp 
$
+ * @version    CVS: $Id: Dependency2.php,v 1.39 2005/05/12 02:42:57 cellog Exp 
$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -336,7 +336,7 @@
             }
         }
         if (!isset($dep['min']) && !isset($dep['max']) &&
-              !isset($dep['recommended'])) {
+              !isset($dep['recommended']) && !isset($dep['exclude'])) {
             if ($loaded) {
                 if (isset($dep['conflicts'])) {
                     if (!isset($this->_options['nodeps']) && 
!isset($this->_options['force'])) {
@@ -386,46 +386,32 @@
         if (empty($version)) {
             $version = '0';
         }
+        $fail = false;
         if (isset($dep['min'])) {
             if (!version_compare($version, $dep['min'], '>=')) {
-                if (!isset($dep['conflicts'])) {
-                    if (!isset($this->_options['nodeps']) && 
!isset($this->_options['force'])) {
-                        return $this->raiseError('%s requires PHP extension "' 
. $dep['name'] .
-                            '"' . $extra . ', installed version is ' . 
$version);
-                    } else {
-                        return $this->warning('warning: %s requires PHP 
extension "' . $dep['name'] .
-                            '"' . $extra . ', installed version is ' . 
$version);
-                    }
-                }
-            } elseif (isset($dep['conflicts'])) {
-                if (!isset($this->_options['nodeps']) && 
!isset($this->_options['force'])) {
-                    return $this->raiseError('%s conflicts with PHP extension 
"' .
-                        $dep['name'] . '"' . $extra);
-                } else {
-                    return $this->warning('warning: %s conflicts with PHP 
extension "' .
-                        $dep['name'] . '"' . $extra);
-                }
+                $fail = true;
             }
         }
         if (isset($dep['max'])) {
             if (!version_compare($version, $dep['max'], '<=')) {
-                if (!isset($dep['conflicts'])) {
-                    if (!isset($this->_options['nodeps']) && 
!isset($this->_options['force'])) {
-                        return $this->raiseError('%s requires PHP extension "' 
. $dep['name'] .
-                            '"' . $extra . ', installed version is ' . 
$version);
-                    } else {
-                        return $this->warning('warning: %s requires PHP 
extension "' . $dep['name'] .
-                            '"' . $extra . ', installed version is ' . 
$version);
-                    }
-                }
-            } elseif (isset($dep['conflicts'])) {
-                if (!isset($this->_options['nodeps']) && 
!isset($this->_options['force'])) {
-                    return $this->raiseError('%s conflicts with PHP extension 
"' .
-                        $dep['name'] . '"' . $extra);
-                } else {
-                    return $this->warning('warning: %s conflicts with PHP 
extension "' .
-                        $dep['name'] . '"' . $extra);
-                }
+                $fail = true;
+            }
+        }
+        if ($fail && !isset($dep['conflicts'])) {
+            if (!isset($this->_options['nodeps']) && 
!isset($this->_options['force'])) {
+                return $this->raiseError('%s requires PHP extension "' . 
$dep['name'] .
+                    '"' . $extra . ', installed version is ' . $version);
+            } else {
+                return $this->warning('warning: %s requires PHP extension "' . 
$dep['name'] .
+                    '"' . $extra . ', installed version is ' . $version);
+            }
+        } elseif ((isset($dep['min']) || isset($dep['max'])) && !$fail && 
isset($dep['conflicts'])) {
+            if (!isset($this->_options['nodeps']) && 
!isset($this->_options['force'])) {
+                return $this->raiseError('%s conflicts with PHP extension "' .
+                    $dep['name'] . '"' . $extra . ', installed version is ' . 
$version);
+            } else {
+                return $this->warning('warning: %s conflicts with PHP 
extension "' .
+                    $dep['name'] . '"' . $extra . ', installed version is ' . 
$version);
             }
         }
         if (isset($dep['exclude'])) {
@@ -444,13 +430,13 @@
                             $dep['name'] . '" version ' .
                             $exclude);
                     }
-                } elseif (isset($dep['conflicts'])) {
+                } elseif (version_compare($version, $exclude, '!=') && 
isset($dep['conflicts'])) {
                     if (!isset($this->_options['nodeps']) && 
!isset($this->_options['force'])) {
                         return $this->raiseError('%s conflicts with PHP 
extension "' .
-                            $dep['name'] . '"' . $extra);
+                            $dep['name'] . '"' . $extra . ', installed version 
is ' . $version);
                     } else {
                         return $this->warning('warning: %s conflicts with PHP 
extension "' .
-                            $dep['name'] . '"' . $extra);
+                            $dep['name'] . '"' . $extra . ', installed version 
is ' . $version);
                     }
                 }
             }



<Prev in Thread] Current Thread [Next in Thread>