php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #67622 Not working configure options
Submitted: 2014-07-15 12:22 UTC Modified: 2016-08-17 09:50 UTC
Votes:5
Avg. Score:4.8 ± 0.4
Reproduced:5 of 5 (100.0%)
Same Version:4 (80.0%)
Same OS:3 (60.0%)
From: pajoye@php.net Assigned: mike (profile)
Status: Closed Package: pecl_http (PECL)
PHP Version: Irrelevant OS: linux
Private report: No CVE-ID: None
View Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
If you reported this bug, you can edit this bug over here.
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: pajoye@php.net
New email:
PHP Version: OS:

 

 [2014-07-15 12:22 UTC] pajoye@php.net
Description:
------------
Using:

 ./configure --with-http --without-http-shared-deps

make ends with:

In file included from /home/pierre/repo/pecl_http/php_http.c:13:0:
/home/pierre/repo/pecl_http/php_http_api.h:26:33: fatal error: ext/raphf/php_raphf.h: No such file or directory

Also it would be nice to use the 2nd argument for PHP_ARG_WITH like here:

PHP_ARG_WITH([http], [whether to enable extended HTTP support],
[  --with-http             Enable extended HTTP support])
PHP_ARG_WITH([http-zlib-dir], [HTTP: where to find zib],
[  --with-http-zlib-dir[=DIR]], $PHP_HTTP, $PHP_HTTP)
PHP_ARG_WITH([http-libcurl-dir], [HTTP: where to find libcurl],
[  --with-http-libcurl-dir[=DIR], $PHP_HTTP, $PHP_HTTP)
PHP_ARG_WITH([http-libevent-dir], [HTTP: wherre to find libevent],
[  --with-http-libevent-dir[=DIR], $PHP_HTTP_LIBCURL_DIR, "")

That would also simplifies pickle implentation :)


Patches

raphf_and_propro_devel_m4 (last revision 2014-07-17 06:40 UTC by pajoye@php.net)

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2014-07-15 12:47 UTC] pajoye@php.net
Patch to fix argument and naming:

https://gist.github.com/pierrejoye/4f3de03b1d764ddbdb35

I'd to dig later the --without-http-shared-deps error, it does not seem to have any effect.
 [2014-07-15 18:24 UTC] mike@php.net
-Status: Open +Status: Not a bug
 [2014-07-15 18:24 UTC] mike@php.net
pecl/raphf is a mandatory dependency.
 [2014-07-16 05:54 UTC] pajoye@php.net
Reopening

As there are still issues then.

For one ADD_EXT_DEP is needed, and the other PHP_ARG usages.

Or do you prefer to open new bugs for each of them?
 [2014-07-16 05:54 UTC] pajoye@php.net
-Status: Not a bug +Status: Open
 [2014-07-16 13:27 UTC] mike@php.net
-Status: Open +Status: Feedback
 [2014-07-16 13:27 UTC] mike@php.net
There are PHP_ADD_EXTENSION_DEPs for internal extensions, because that only works for extensions in the core tree.

The PHP_ARG_WITH usage was fine for configure and pear/pecl.
 [2014-07-16 19:49 UTC] mike@php.net
-Status: Feedback +Status: Not a bug -Assigned To: +Assigned To: mike
 [2014-07-16 19:49 UTC] mike@php.net
Thank you.
 [2014-07-16 20:42 UTC] pajoye@php.net
OK.

And what about the build error instead of configure failing?
 [2014-07-17 04:25 UTC] pajoye@php.net
For the record here:

- it may work if pecl if deps already exist but the package.xml configure options do not match the actual current list of ocnfigure option

- lack of raphf does not bail out, patch:
https://gist.github.com/pierrejoye/7dcff563684017f46ff7

Will post more complete patch to fix HTTP_HAVE_PHP_EXT as well, it should use php-config to get the PHP include dir, as php -m will only tell if raph is loaded but not required to build http:


php-config --include-dir

have to run out but will post the patch later :)
 [2014-07-17 06:09 UTC] mike@php.net
-Status: Not a bug +Status: Open
 [2014-07-17 06:09 UTC] mike@php.net
Actually closed another bug... sorry.
 [2014-07-17 06:18 UTC] mike@php.net
I aggree to add `php-config --includes` to the list to check for the headers.

`php -m` is just used as a quick first test to see if the extension is already loaded by default.

This patch should fix configure if the extension is not present at all:
https://gist.github.com/m6w6/67d1788945aa69adf7e4
 [2014-07-17 06:40 UTC] pajoye@php.net
The following patch has been added/updated:

Patch Name: raphf_and_propro_devel_m4
Revision:   1405579206
URL:        https://bugs.php.net/patch-display.php?bug=67622&patch=raphf_and_propro_devel_m4&revision=1405579206
 [2014-07-17 06:40 UTC] pajoye@php.net
Patch to fix detection of raphf and propro development files existence.
 [2014-11-09 15:38 UTC] marcus at synchromedia dot co dot uk
I can't make the posted patch apply to 2.1.4 source - it doesn't match the propro section.

I edited the changes in manually, but it doesn't help - installation of the http extension still fails to recognise that raphf and propro are installed and working. I've tried this on several different OS versions and it's failing the same way on all of them, so as far as I can see pecl_http installation has been entirely broken for at least 6 months! Any chance of getting this fixed?
 [2014-11-25 17:58 UTC] marcus at synchromedia dot co dot uk
I just tried the 2.2.0RC1 release, and it still has the same problem:

downloading pecl_http-2.2.0RC1.tgz ...
Starting to download pecl_http-2.2.0RC1.tgz (172,417 bytes)
.....................................done: 172,417 bytes
downloading raphf-1.0.4.tgz ...
Starting to download raphf-1.0.4.tgz (7,232 bytes)
...done: 7,232 bytes
downloading propro-1.0.0.tgz ...
Starting to download propro-1.0.0.tgz (6,217 bytes)
...done: 6,217 bytes
...
Build process completed successfully
Installing '/usr/lib/php5/20100525/raphf.so'
Installing '/usr/include/php5/ext/raphf/php_raphf.h'
install ok: channel://pecl.php.net/raphf-1.0.4
...
Build process completed successfully
Installing '/usr/lib/php5/20100525/propro.so'
Installing '/usr/include/php5/ext/propro/php_propro.h'
install ok: channel://pecl.php.net/propro-1.0.0
...
checking for ext/raphf support... no
configure: error: Please install pecl/raphf and activate extension=raphf.so in your php.ini

and yet `php -m` output includes both propro and raphf. It's doing the same thing on 3 flavours of Ubuntu and OS X.
 [2015-01-16 15:21 UTC] marcus at synchromedia dot co dot uk
So now I'm trying to use pecl_http with PHP 5.6 - I'm still getting this same compile problem with 2.2.0rc1 (on a brand-new, freshly installed server), but I'm also finding it won't compile 1.7.6 either because of this:

/bin/bash /tmp/pear/temp/pear-build-rootHn859V/pecl_http-1.7.6/libtool --mode=compile cc  -I. -I/tmp/pear/temp/pecl_http -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootHn859V/pecl_http-1.7.6/include -I/tmp/pear/temp/pear-build-rootHn859V/pecl_http-1.7.6/main -I/tmp/pear/temp/pecl_http -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -I/usr/include/php5/ext/hash  -DHAVE_CONFIG_H  -g -O2   -c /tmp/pear/temp/pecl_http/http_api.c -o http_api.lo
libtool: compile:  cc -I. -I/tmp/pear/temp/pecl_http -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootHn859V/pecl_http-1.7.6/include -I/tmp/pear/temp/pear-build-rootHn859V/pecl_http-1.7.6/main -I/tmp/pear/temp/pecl_http -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -I/usr/include/php5/ext/hash -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/pecl_http/http_api.c  -fPIC -DPIC -o .libs/http_api.o
/tmp/pear/temp/pecl_http/http_api.c: In function '_http_get_request_body_ex':
/tmp/pear/temp/pecl_http/http_api.c:352:22: error: 'sapi_request_info' has no member named 'raw_post_data'
  if (SG(request_info).raw_post_data) {
                      ^
/tmp/pear/temp/pecl_http/http_api.c:353:29: error: 'sapi_request_info' has no member named 'raw_post_data_length'
   *length = SG(request_info).raw_post_data_length;
                             ^
/tmp/pear/temp/pecl_http/http_api.c:354:27: error: 'sapi_request_info' has no member named 'raw_post_data'
   *body = SG(request_info).raw_post_data;
                           ^
/tmp/pear/temp/pecl_http/http_api.c:385:19: error: 'sapi_request_info' has no member named 'raw_post_data'
   SG(request_info).raw_post_data = *body;
                   ^
/tmp/pear/temp/pecl_http/http_api.c:386:19: error: 'sapi_request_info' has no member named 'raw_post_data_length'
   SG(request_info).raw_post_data_length = *length;
                   ^
/tmp/pear/temp/pecl_http/http_api.c: In function '_http_get_request_body_stream':
/tmp/pear/temp/pecl_http/http_api.c:403:22: error: 'sapi_request_info' has no member named 'raw_post_data'
  if (SG(request_info).raw_post_data) {
                      ^
make: *** [http_api.lo] Error 1
ERROR: `make' failed

A quick search finds several other reports of this problem, but no solutions. So now I'm unable to compile any version of pecl_http. Any chance you could fix either or both of these?
 [2016-08-17 09:50 UTC] mike@php.net
-Status: Assigned +Status: Closed
 [2016-08-17 09:50 UTC] mike@php.net
Please create a report at https://github.com/m6w6/ext-http/issues if this issue still exists.

Thank you!
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Dec 12 13:01:27 2024 UTC