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

Jens-U. Mozdzen jmozdzen at nde.ag
Wed May 28 12:17:23 UTC 2014


Hi Simon & all,

Zitat von Simon Wilson <simon at simonandkate.net>:
> [...]
>> 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:
> [...]
> 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.

sometimes it's so easy, it hurts. Had I spent 5 more minutes before  
sending my above responses, this case could already have been closed:

>>>>> It is as if the file didn't get compiled or the macro  
>>>>> "REGISTER_NS_LONG_CONSTANT()" acted as a noop?!?

Well... it's neither of those - the file is compiled (I had already  
verified), but it about starts with "#if PHP_HTTP_HAVE_CURL", which is  
set during config9.m4 processing... but only if curl/curl.h is found.

In other words, to compile some curl client code, you need the curl  
development package installed. Now isn't that surprising?

Simon, in that full log from pecl install, check for the following to  
confirm it couldn't find that include file: "checking for  
curl/curl.h... not found".

I'm running this on a SUSE Linux Enterprise server, so the required  
task was to install "libcurl-devel" and then forcibly re-install  
pecl_http.

Now I get

--- cut here ---
# strings /usr/lib64/php5/extensions/http.so | grep Client
http\Client
http\Client\%s
http\Client\Request
.Ahttp\Client\Curl
http\Client\Curl\Request
http\Client\Curl\IPRESOLVE_V4
http\Client\Curl\IPRESOLVE_V6
http\Client\Curl\AUTH_BASIC
http\Client\Curl\AUTH_DIGEST
http\Client\Curl\AUTH_NTLM
http\Client\Curl\AUTH_GSSNEG
http\Client\Curl\AUTH_ANY
http\Client\Curl\PROXY_SOCKS4
http\Client\Curl\PROXY_SOCKS5
http\Client\Curl\PROXY_HTTP
http\Client\Curl\HTTP_VERSION_1_0
http\Client\Curl\HTTP_VERSION_1_1
http\Client\Curl\HTTP_VERSION_ANY
http\Client\Curl\SSL_VERSION_TLSv1
http\Client\Curl\SSL_VERSION_SSLv2
http\Client\Curl\SSL_VERSION_SSLv3
http\Client\Curl\SSL_VERSION_ANY
http\Client\Curl\IPRESOLVE_ANY
http\Client\Curl\AUTH_DIGEST_IE
http\Client\Curl\PROXY_SOCKS4A
http\Client\Curl\PROXY_SOCKS5_HOSTNAME
http\Client\Curl\PROXY_HTTP_1_0
http\Client\Curl\POSTREDIR_301
http\Client\Curl\POSTREDIR_302
http\Client\Curl\POSTREDIR_ALL
http\Client\Response
--- cut here ---

and no more errors when opening email messages.

> Thanks Jan. Looks like the Horde libraries are relying on a package  
> that is broken in some situations... :-/

Nope, the package isn't broken. The error in my case was on my side of  
the keyboard.

Best regards to all,
Jens



More information about the horde mailing list