summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas V.V.Cox <cox@php.net>2003-10-04 17:16:35 +0000
committerTomas V.V.Cox <cox@php.net>2003-10-04 17:16:35 +0000
commit0c9f669cc5efaa5fd68640bc4a4c309e4d4f7449 (patch)
tree3434cb8f8e4394f22891f98a46d9323d7034fe3d
parent7630f962f103ebec235f29e61108cff59c700bca (diff)
downloadphp-git-0c9f669cc5efaa5fd68640bc4a4c309e4d4f7449.tar.gz
Better fix #61
-rw-r--r--pear/PEAR/Installer.php20
1 files changed, 14 insertions, 6 deletions
diff --git a/pear/PEAR/Installer.php b/pear/PEAR/Installer.php
index 414010b10e..36fc9456da 100644
--- a/pear/PEAR/Installer.php
+++ b/pear/PEAR/Installer.php
@@ -725,9 +725,17 @@ class PEAR_Installer extends PEAR_Common
$curver = $this->registry->packageInfo($pkgfile, 'version');
$remote = &new PEAR_Remote($config);
$releases = $remote->call('package.info', $pkgfile, 'releases');
+ if (!count($releases)) {
+ return $this->raiseError("No releases found for package '$pkgfile'");
+ }
$states = $this->betterStates($state, true);
$possible = false;
- foreach($releases as $ver => $inf) {
+ $_err_latest = false;
+ foreach ($releases as $ver => $inf) {
+ if (!$_err_latest) {
+ $_err_latest = "$pkgfile-$ver";
+ $_err_latest_state = $inf['state'];
+ }
if (in_array($inf['state'], $states)) {
if (is_array($possible)) {
if (version_compare(key($possible), $ver) < 0) {
@@ -738,17 +746,17 @@ class PEAR_Installer extends PEAR_Common
$possible = array($ver => $inf['state']);
}
}
- } else {
- return $this->raiseError('No release with state equal to: \'' . implode(', ', $states) .
- "' found. The latest is $pkgfile-$ver ({$inf['state']}). Use " .
- "'pear install $pkgfile-$ver' or set the 'preferred_state' ".
- "to '{$inf['state']}' for installing this package.");
}
}
if ($possible) {
$pkgfile = $this->_downloadFile($pkgfile, $config, $options,
$errors, key($possible), $origpkgfile,
$state);
+ } else {
+ return $this->raiseError('No release with state equal to: \'' . implode(', ', $states) .
+ "' found. The latest is $_err_latest ($_err_latest_state). Use " .
+ "'pear install $_err_latest' or set the 'preferred_state' ".
+ "to '$_err_latest_state' for installing this package.");
}
} else {
$pkgfile = $this->_downloadFile($pkgfile, $config, $options,