this is somewhat related to Problems installing PHP EzComponents using pyrus.
I am trying to do a clean installation of pyrus without any package installed the way pear used to do it (meaning no pear installer etc.).
I am however running in to problems with the ezComponents which a lot of tools depend on.
Whenever I run sudo pyrus install ezc/ConsoleTools
i get:
Using PEAR installation found at /usr/lib/php
Downloading components.ez.no/ConsoleTools
PEAR2\Pyrus\Package\Exception: Invalid abstract package components.ez.no/ConsoleTools - releasing maintainer's certificate is not a certificate
Installing the stuff with pear works, but when i then try to get pyrus to take over control with sudo pyrus /usr/lib/php upgrade ezc/ConsoleTools
I get exactly the same error because it is trying to download the package again.
My best guess is that ezComponents is using some custom pear channel server. How do I work around this? Or do I have to wait for individual package maintainers to update their dependencies?
This is on OSX 10.6 btw.
OK, so I figured it out. Pyrus tries to fetch a .pem file on line 356 of Pyrus/Channel/RemotePackage.php. It does that by appending .pem to the package url.
This file is not present on ezComponents and the server responds with a 302 redirect instead a 404, the 302 redirect bug mentioned in my question has been fixed, so now pyrus follows the url, which leads to the frontpage responding with 200 OK. Now pyrus thinks the frontpage html is the certificate and tries to validate the package with it.
A workaround is simply to turn the openssl mod off, the entire check is then skipped. Which is easier said than done on OS X, since this would require a recompile :-) I guess all that's left to do is editing the source.