[horde] [kronolith] Errors after upgrade to pecl_http 2 / Horde_Http 2.1.1

simon at simonandkate.net simon at simonandkate.net
Wed May 28 09:00:19 UTC 2014


On 28 May 2014, at 6:37 pm, Jan Schneider <jan at horde.org> wrote:
> 
> 
> Zitat von Simon Wilson <simon at simonandkate.net>:
> 
>> ----- Message from Jan Schneider <jan at horde.org> ---------
>>   Date: Wed, 28 May 2014 10:16:14 +0200
>>   From: Jan Schneider <jan at horde.org>
>> Subject: Re: [horde] [kronolith] Errors after upgrade to pecl_http 2  
>> / Horde_Http 2.1.1
>>     To: Simon Wilson <simon at simonandkate.net>
>>     Cc: horde at lists.horde.org
>> 
>> 
>>> Zitat von Simon Wilson <simon at simonandkate.net>:
>>> 
>>>> ----- Message from Jan Schneider <jan at horde.org> ---------
>>>> Date: Wed, 28 May 2014 09:57:27 +0200
>>>> From: Jan Schneider <jan at horde.org>
>>>> Subject: Re: [horde] [kronolith] Errors after upgrade to pecl_http  
>>>> 2 / Horde_Http 2.1.1
>>>>   To: Simon Wilson <simon at simonandkate.net>
>>>>   Cc: horde at lists.horde.org
>>>> 
>>>> 
>>>>> Zitat von Simon Wilson <simon at simonandkate.net>:
>>>>> 
>>>>>> ----- Message from Jan Schneider <jan at horde.org> ---------
>>>>>> Date: Wed, 28 May 2014 08:37:16 +0200
>>>>>> From: Jan Schneider <jan at horde.org>
>>>>>> Subject: Re: [horde] [kronolith] Errors after upgrade to  
>>>>>> pecl_http 2 / Horde_Http 2.1.1
>>>>>> To: horde at lists.horde.org
>>>>>> 
>>>>>> 
>>>>>>> Zitat von "Jens-U. Mozdzen" <jmozdzen at nde.ag>:
>>>>>>> 
>>>>>>>> Hi Simon & all,
>>>>>>>> 
>>>>>>>> Zitat von Simon Wilson <simon at simonandkate.net>:
>>>>>>>>> ----- Message from "Jens-U. Mozdzen" <jmozdzen at nde.ag> ---------
>>>>>>>>> [...]
>>>>>>>>>> What bothers me is: I've installed (over and over again)  
>>>>>>>>>> pecl_http-2.0.6.tar, and looking at it's source code, I can  
>>>>>>>>>> see that these constants are to be registered:
>>>>>>>>>> 
>>>>>>>>>> --- cut here ---
>>>>>>>>>> # grep -r AUTH_ANY pecl_http-2.0.6/
>>>>>>>>>> ...
>>>>>>>>>> pecl_http-2.0.6/php_http_client_curl.c:  
>>>>>>>>>> REGISTER_NS_LONG_CONSTANT("http\\Client\\Curl", "AUTH_ANY",  
>>>>>>>>>> CURLAUTH_ANY, CONST_CS|CONST_PERSISTENT);
>>>>>>>>>> --- cut here ---
>>>>>>>>>> 
>>>>>>>>>> But checking the freshly generated http.so file, I see no  
>>>>>>>>>> trace of those constants:
>>>>>>>>>> 
>>>>>>>>>> --- cut here ---
>>>>>>>>>> # grep AUTH_ /usr/lib64/php5/extensions/http.so
>>>>>>>>>> #
>>>>>>>>>> --- cut here ---
>>>>>>>>>> 
>>>>>>>>>> It is as if the file didn't get compiled or the macro  
>>>>>>>>>> "REGISTER_NS_LONG_CONSTANT()" acted as a noop?!? The build  
>>>>>>>>>> log of the PECL package shows no hint that anything went  
>>>>>>>>>> wrong:
>>>>>>>>> [...]
>>>>>>>>> At least it's not just me lol...
>>>>>>>> 
>>>>>>>> nope, and that's what I wanted to let you know - I know that  
>>>>>>>> feeling of loneliness too well :D
>>>>>>>> 
>>>>>>>>> Jens, you look to have a far sounder understanding of this  
>>>>>>>>> than me :) Are you going to take this up with the package  
>>>>>>>>> maintainers?
>>>>>>>> 
>>>>>>>> Not before someone who knows this works for them will confirm  
>>>>>>>> that the symbols are in fact included in their http.so module.
>>>>>>>> 
>>>>>>>> While I can look back on 30+ years of software development  
>>>>>>>> experience, I still find many new and interesting subjects  
>>>>>>>> every day. PHP is amongst those that are rather new to me, but  
>>>>>>>> not as interesting as to justify spending days on learning how  
>>>>>>>> pecl modules are to be built properly ;) So all I'm willing to  
>>>>>>>> offer is sending a qualified report to the maintainer, which  
>>>>>>>> is based on a confirmation that I should actually see those  
>>>>>>>> constants via "grep" - else I'll make a fool of myself and  
>>>>>>>> waste the precious time of the maintainer...
>>>>>>>> 
>>>>>>>> Jan, could you jump in with a result of that grep from a  
>>>>>>>> functional machine?
>>>>>>>> 
>>>>>>>> Regards,
>>>>>>>> Jens
>>>>>>> 
>>>>>>> $ strings /usr/lib/php5/20121212/http.so | grep ANY
>>>>>>> http\Client\Curl\AUTH_ANY
>>>>>>> http\Client\Curl\HTTP_VERSION_ANY
>>>>>>> http\Client\Curl\SSL_VERSION_ANY
>>>>>>> http\Client\Curl\IPRESOLVE_ANY
>>>>>>> 
>>>>>>> -- 
>>>>>>> Jan Schneider
>>>>>> 
>>>>>> This is the closest mine comes:
>>>>>> 
>>>>>> $ strings /usr/lib64/php/modules/http.so | grep Client
>>>>>> http\Client
>>>>>> http\Client\%s
>>>>>> http\Client\Request
>>>>>> http\Client\Response
>>>>>> 
>>>>>> Tried reinstalling again, still nothing.
>>>>>> 
>>>>>> I have a full log from the pecl install Jens if that helps at some stage.
>>>>>> 
>>>>>> Thanks Jan. Looks like the Horde libraries are relying on a  
>>>>>> package that is broken in some situations... :-/
>>>>>> 
>>>>>> Simon.
>>>>>> 
>>>>>> --
>>>>>> Simon Wilson
>>>>>> M: 0400 12 11 16
>>>>> 
>>>>> Nooow we're getting somewhere. I slightly remember seeing some
>> 
>>>>> configuration input during the PECL installation that asks for  
>>>>> the location of the curl libraries. Any chance that you didn't  
>>>>> provide that location or that it was incorrect? I wonder why the  
>>>>> extension still compiles then, or, if this is supposed to happen,  
>>>>> why it is not documented anywhere that the feature set of  
>>>>> pecl_http might depend on some libraries that have a have not  
>>>>> installed.
>>>>> 
>>>>> -- 
>>>>> Jan Schneider
>>>>> The Horde Project
>>>>> http://www.horde.org/
>>>>> https://www.facebook.com/hordeproject
>>>> 
>>>> 
>>>> ----- End message from Jan Schneider <jan at horde.org> -----
>>>> 
>>>> It asks for zlib, libevent and libcurl. ALl of them I have installed.
>>>> 
>>>> $ yum list zlib libevent libcurl
>>>> 
>>>> Installed Packages
>>>> libcurl.x86_64                                                      
>>>>                                7.19.7-37.el6_4                     
>>>> 
>>>> @updates
>>>> libevent.x86_64                                                     
>>>>                                1.4.13-4.el6                        
>>>> 
>>>> @base
>>>> zlib.x86_64                                                         
>>>>                                1.2.3-29.el6                        
>>>> 
>>>> @base
>>>> 
>>>> 
>>>> --
>>>> Simon Wilson
>>>> M: 0400 12 11 16
>>> 
>>> What does the following get you:
>>> php -r 'var_dump(http\Client::getAvailableDrivers());'
>>> 
>>> -- 
>>> Jan Schneider
>> 
>> PHP Fatal error:  Class 'http\Client' not found in Command line code  
>> on line 1
>> 
>> Simon.
>> 
>> --
>> Simon Wilson
>> M: 0400 12 11 16
> 
> Again, you don't even have http 2.0.x installed or a completely borked  
> system. Anyway, this has nothing to do with Horde, so please take this  
> to a more suitable place.
> 
> -- 
> Jan Schneider

Seriously? lol...

Thank you Michael and Jens, it's fixed now, by installing the other two devel packages.

Three users have now reported to this list with this issue. It appears to be their issue not yours, Jan, but it's your software that doesn't work as a result. I would have thought that this conversation would be VERY relevant to this list, given that Horde now appears to depend on a broken package, and I suspect this will not be the last time this question gets asked. 

If this helps someone else at some point not have to ask for help Jan then I would have thought that would be valued. 

I'm sorry if you feel we have wasted your time. 

:-(


More information about the horde mailing list