logo       
Google Custom Search
    AddThis Social Bookmark Button
-->

cvs: pear-core /PEAR/Downloader Package.php: msg#00196

Subject: cvs: pear-core /PEAR/Downloader Package.php
cellog          Sat May 21 00:35:18 2005 EDT

  Modified files:              
    /pear-core/PEAR/Downloader  Package.php 
  Log:
  implement transparent checking of pecl.php.net for
  failed packages and case-insensitive equality check
  
http://cvs.php.net/diff.php/pear-core/PEAR/Downloader/Package.php?r1=1.74&r2=1.75&ty=u
Index: pear-core/PEAR/Downloader/Package.php
diff -u pear-core/PEAR/Downloader/Package.php:1.74 
pear-core/PEAR/Downloader/Package.php:1.75
--- pear-core/PEAR/Downloader/Package.php:1.74  Fri May 20 23:54:44 2005
+++ pear-core/PEAR/Downloader/Package.php       Sat May 21 00:35:18 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: Package.php,v 1.74 2005/05/21 03:54:44 cellog Exp $
+ * @version    CVS: $Id: Package.php,v 1.75 2005/05/21 04:35:18 cellog Exp $
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -652,8 +652,10 @@
                     $newdep['channel'] = 'pecl.php.net';
                     $url =
                         $this->_downloader->_getDepPackageDownloadUrl($newdep, 
$pname);
-                    PEAR::popErrorHandling();
-                    return $url;
+                    if (PEAR::isError($url)) {
+                        PEAR::popErrorHandling();
+                        return $url;
+                    }
                 }
                 PEAR::popErrorHandling();
                 // check to see if a dep is already installed
@@ -666,7 +668,12 @@
                         'required' :
                         'optional';
                     $dep['package'] = $dep['name'];
-                    $version = $this->_registry->packageInfo($dep['name'], 
'version');
+                    if (isset($newdep)) {
+                        $version = 
$this->_registry->packageInfo($newdep['name'], 'version',
+                            $newdep['channel']);
+                    } else {
+                        $version = $this->_registry->packageInfo($dep['name'], 
'version');
+                    }
                     $dep['version'] = $url['version'];
                     if (!isset($options['soft'])) {
                         $this->_downloader->log(3, 'Skipping ' . $group . ' 
dependency "' .
@@ -674,9 +681,7 @@
                             '", already installed as version ' . $version);
                     }
                     if (@$skipnames[count($skipnames) - 1] ==
-                          $this->_registry->parsedPackageNameToString(
-                                array('channel' => 'pear.php.net', 'package' =>
-                                $dep['name']), true)) {
+                          $this->_registry->parsedPackageNameToString($dep, 
true)) {
                         array_pop($skipnames);
                     }
                     continue;
@@ -685,6 +690,9 @@
                     continue;
                 }
                 PEAR::pushErrorHandling(PEAR_ERROR_RETURN);
+                if (isset($newdep)) {
+                    $dep = $newdep;
+                }
                 $dep['package'] = $dep['name'];
                 $ret = $this->_analyzeDownloadURL($url, 'dependency', $dep, 
$params,
                     isset($dep['optional']) && $dep['optional'] == 'yes' &&
@@ -953,23 +961,23 @@
                     $channel = 'pear.php.net';
                 }
             }
-            return ($package == $this->getPackage() &&
+            return (strtolower($package) == strtolower($this->getPackage()) &&
                 $channel == $this->getChannel() &&
                 version_compare($newdep['min'], $this->getVersion(), '<=') &&
                 version_compare($newdep['max'], $this->getVersion(), '>='));
         }
         // use magic to support pecl packages suddenly jumping to the pecl 
channel
         if ($channel == 'pecl.php.net' && $this->getChannel() == 
'pear.php.net') {
-            if ($package == $this->getPackage()) {
+            if (strtolower($package) == strtolower($this->getPackage())) {
                 $channel = 'pear.php.net';
             }
         }
         if (isset($param['version'])) {
-            return ($package == $this->getPackage() &&
+            return (strtolower($package) == strtolower($this->getPackage()) &&
                 $channel == $this->getChannel() &&
                 $param['version'] == $this->getVersion());
         } else {
-            return $package == $this->getPackage() &&
+            return strtolower($package) == strtolower($this->getPackage()) &&
                 $channel == $this->getChannel();
         }
     }



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