Re: PHP 5.0.5 and PEAR 1.4.2...together?
| From: | Greg Beaver | Date: | Thu, 20 Oct 2005 22:14:06 +0000 |
| Subject: | Re: PHP 5.0.5 and PEAR 1.4.2...together? | ||
| References: | 1 2 3 | Groups: | php.pear.general |
| Request: | Send a blank email to pear-general+get-21572@lists.php.net to get a copy of this message | ||
Andrew Teixeira wrote:
> [PEAR] PEAR: pear.php.net/PEAR: conflicting files found:
> OS/Guess.php (pear.php.net/Object id #11)
> PEAR/ChannelFile/Parser.php (pear.php.net/Object id #27)
> PEAR/Command/Auth-init.php (pear.php.net/Object id #17)
> PEAR/Command/Auth.php (pear.php.net/Object id #60)
> [---End Snippet---]
>
> I didn't copy all the files that it said conflicted into the snippet
> since it went on for a good distance.
>
> The conflicting files errors seem to be for every file in every PEAR
> package that PHP is attempting to install. Not sure what I'm doing
> wrong. Please let me know your thoughts. Thanks.
Aha - this is both a rare bug and an EXTREMELY unhelpful way of
reporting it to you :).
The Object id #11 crap is a PEAR_Error object.
see newly opened (and fixed) http://pear.php.net/bugs/5736
You can at the very least find the real source of your trouble by adding
these lines to PEAR/Registry.php at line 1840:
if (PEAR::isError($pkgs[$name])) {
return $pkgs[$name];
}
This will transform the checkFileMap() method into:
...
if (!in_array($attrs['role'],
PEAR_Installer_Role::getBaseinstallRoles())) {
$attrs['baseinstalldir'] = is_array($package) ?
$package[1] : $package;
}
if (isset($attrs['baseinstalldir'])) {
$name = $attrs['baseinstalldir'] .
DIRECTORY_SEPARATOR . $name;
}
}
$pkgs[$name] = $this->checkFileMap($name, $package,
$api, $attrs);
if (PEAR::isError($pkgs[$name])) {
return $pkgs[$name];
}
}
return array_filter($pkgs, $notempty);
}
if (empty($this->filemap_cache)) {
...
Greg