I was able to reproduce this error by having two copies of the Zend Framework installed. I'm still not sure exactly why both are being loaded, but I'll describe my setup and more evidence of the bug here.
include_path => .:/usr/share/php:/usr/share/pear => .:/usr/share/php:/usr/share/pear
I have one freshly downloaded copy of the Zend Framework at:
/usr/share/php/ZendFramework-1.8.4/library/Zend/
and the current (somewhat old) ubuntu Zend Framework package at:
/usr/share/php/libzend-framework-php/Zend/
plus a soft link to the latest package like this:
/usr/share/php/Zend -> /usr/share/php5/ZendFramework-1.8.4/library/Zend/
Here's the buggy script output:
$ /usr/share/php5/ZendFramework-1.8.4/bin/zf.sh
Fatal error: Cannot redeclare class Zend_OpenId_Provider in /usr/share/php5/ZendFramework-1.8.4/library/Zend/OpenId/Provider.php on line 44
Call Stack:
0.0004 74076 1. {main}() /usr/share/php5/ZendFramework-1.8.4/bin/zf.php:0
0.0108 623348 2. Zend_Tool_Framework_Client_Console::main() /usr/share/php5/ZendFramework-1.8.4/bin/zf.php:77
0.0108 623784 3. Zend_Tool_Framework_Client_Abstract->dispatch() /usr/share/php5/ZendFramework-1.8.4/library/Zend/Tool/Framework/Client/Console.php:86
0.0108 623904 4. Zend_Tool_Framework_Client_Abstract->initialize() /usr/share/php5/ZendFramework-1.8.4/library/Zend/Tool/Framework/Client/Abstract.php:192
0.0137 750808 5. Zend_Tool_Framework_Loader_Abstract->load() /usr/share/php5/ZendFramework-1.8.4/library/Zend/Tool/Framework/Client/Abstract.php:101
1.1997 2751124 6. include_once('/usr/share/php5/ZendFramework-1.8.4/library/Zend/OpenId/Provider.php') /usr/share/php5/ZendFramework-1.8.4/library/Zend/Tool/Framework/Loader/Abstract.php:90
I gained a little insight into this by checking the contents of $this->retrievedFiles in Zend_Tool_Framework_Loader_Abstract right before the loop where the exception is thrown. Here's what I saw:
Array
(
[0] => /usr/share/php5/libzend-framework-php/Zend/OpenId/Provider.php
[1] => /usr/share/php5/ZendFramework-1.8.4/tests/Zend/Tool/Framework/Manifest/_files/ManifestBadProvider.php
[2] => /usr/share/php5/ZendFramework-1.8.4/library/Zend/Tool/Project/Provider/Manifest.php
[3] => /usr/share/php5/ZendFramework-1.8.4/library/Zend/Tool/Project/Provider/ProjectProvider.php
[4] => /usr/share/php5/ZendFramework-1.8.4/library/Zend/Tool/Framework/Client/Console/Manifest.php
[5] => /usr/share/php5/ZendFramework-1.8.4/library/Zend/Tool/Framework/System/Manifest.php
[6] => /usr/share/php5/ZendFramework-1.8.4/library/Zend/Tool/Framework/System/Provider/Manifest.php
[7] => /usr/share/php5/ZendFramework-1.8.4/library/Zend/OpenId/Provider.php
)
Obviously, it will throw this error when it tries to load the second copy of Zend_OpenId_Provider, but I'm still not sure why it references the wrong one in the first entry there.
The issue is more likely to be related with zend_tool than with zend_openid (it seems to me..). Assigning to other component.