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();
}
}
|