Wed Apr 8 19:57:23 2015 UTC ()
Update php-http to 2.4.3, based on patches provided by rodent@NetBSD.org.
Not backwards compatible with 1.x. Now depends on php-propro and php-raphf.

Upstream changelog:

2.4.3
* Fixed bug #69357 (HTTP/1.1 100 Continue overriding subsequent 200 response
  code with PUT request)

2.4.2
* Fixed bug 69076 (http\Url throws Exception on empty querystring)
* Fixed bug 69313 (http\Client doesn't send GET body)
+ Added libidn2 and UIDNA as fallbacks for IDN support
- Deferred warnings/exceptions of the client, so callbacks for the
  currently failing requests will still be called

2.4.1
* Fixed build with PHP <= 5.4 (Remi)

2.4.0
* Split off pecl/apfd and pecl/json_post

2.3.2
* Fixed bug with http\QueryString::offsetSet() resetting the complete
  query string

2.3.1
* Fixed build on platforms that need stddef.h to define ptrdiff_t
  (e.g. CentOS 7.5)

2.3.0
+ Preliminiary HTTP2 support for http\Client (libcurl with nghttp2 support)
+ Improved performance of HTTP info parser (request/response line)
+ Improved performance of updating client observers
+ Improved performance of http\Env\Response output to streams
+ Improved the error messages of the header parser
+ Added http\Header\Parser class
+ Added http\Client::configure() method accepting an array with the following
  options for libcurl:
. maxconnects (int, size of the connection cache)
. max_host_connections (int, max number of connections to a single host,
  libcurl >= 7.30.0)
. max_pipeline_length (int, max number of requests in a pipeline,
  libcurl >= 7.30.0)
. max_total_connections (int, max number of simultaneous open connections
  of this client, libcurl >= 7.30.0)
. pipelining (bool, whether to enable HTTP/1.1 pipelining)
. chunk_length_penalty_size (int, chunk length threshold for pipelining,
  libcurl >= 7.30.0)
. content_length_penalty_size (int, size threshold for pipelining,
  libcurl >= 7.30.0)
. pipelining_server_bl (array, list of server software names to blacklist
  for pipelining, libcurl >= 7.30.0)
. pipelining_site_bl (array, list of server host names to blacklist
  for pipelining, libcurl >= 7.30.0)
. use_eventloop (bool, whether to use libevent, libcurl+libevent)
+ Added http\Client::getAvailableOptions() and
  http\Client::getAvailableConfiguration() methods
+ Added support for HTTP2 if libcurl was built with nghttp2 support.
+ Added http\Client\Curl\HTTP_VERSION_2_0 constant (libcurl >= 7.33.0)
+ Added http\Client\Curl\TLS_AUTH_SRP constant (libcurl >= 7.21.4)
+ Added pinned_publickey SSL request option (libcurl >= 7.39.0)
+ Added tlsauthtype, tlsauthuser and tlsauthpass SSL request option
  (libcurl >= 7.21.4)
+ Added verifystatus (a.k.a OCSP) SSL request option (libcurl >= 7.41.0)
+ Added proxyheader request option (libcurl >= 7.37.0)
+ Added unix_socket_path request option (libcurl >= 7.40.0)
* Fixed compress request option
* Fixed parsing authorities of CONNECT messages
* Fixed parsing Content-Range messages
* Fixed http\Env\Response to default to chunked encoding over streams
* Fixed superfluous output of Content-Length:0 headers
* Fixed persistent easy handles to be only created for persistent
  multi handles
* Fixed the header parser to accept not-yet-complete header lines
* Fixed http\Message::toStream() crash in ZTS mode
* Fixed the message stream parser to handle intermediary data bigger than 4k
* Fixed the message stream parser to handle single header lines without EOL
* Fixed http\Message\Body to not generate stat based etags
  for temporary streams
- Deprecated http\Client::enablePipelining(), use
  http\Client::configure(["pipelining" => true]) instead
- Deprecated http\Client::enableEvents(), use
  http\Client::configure(["use_eventloop" => true]) instead
- Removed the cookies entry from the transfer info, wich was very slow
  and generated a Netscape formatted list of cookies
- Changed the header parser to reject illegal characters

2.2.1
* Fixed Bug #69000 (http\Url breaks down with very long URL query strings)

2.2.0
- var_dump(http\Message) no longer automatically creates an empty body
+ Added http\Message\Parser class
+ Made http\Client::once() and http\Client::wait() available when using events
+ Added http\Url::PARSE_MBLOC, http\Url::PARSE_MBUTF8,
  http\Url::PARSE_TOIDN and http\Url::PARSE_TOPCT constants
+ Added http\Env\Response::setCookie()
+ Added http\Env\Request::getCookie()

2.1.4
* Fixed bug #68353 (QsoSSL support removed in libcurl 7.39)
* Fixed bug #68149 (duplicate content-length with libcurl < 7.23)
* Fixed bug #66891 (Unexpected HTTP 401 after NTLM authentication)

2.1.3
* Fix build with libcurl < 7.26 (Remi)

2.1.2
+ Added missing request option constants: POSTREDIR_303, AUTH_SPNEGO
  (libcurl >= 7.38.0), SSL_VERSION_TLSv1_{0,1,2} (libcurl >= 7.34)
* Fixed bug #68083 (PUT method not working after DELETE)
* Fixed bug #68009 (Segmentation fault after calling exit(0) after a request)
* Fixed bug #68000 (Extension does not build on FreeBSD)

2.1.1
* Fix httpVersion retrieval on bigendian (Remi)
* Fix etag/crc32b on bigendian (Remi)

2.1.0
- Removed port and scheme guessing of http\Url for portability
* Fixed PHP-5.3 compatibility
* Fixed PHP-5.4 compatibility
* Fixed possible bus error on shutdown when using events
* Fixed sovereignty of clients when using events
* Fixed a possible crash with http\Encoding\Stream\Dechunk::decode($unencoded)
* Fixed a leak in http\Client\Curl options
* Fixed bug #67733 (Compile error with libevent 2.x)
+ Added RFC5987 support in http\Params
+ Improved synthetic HTTP message parsing performace for ~20%
+ Added request options if libcurl has builtin c-ares support:
dns_interface, dns_local_ip4, dns_local_ip6 (all libcurl >= 7.33.0)
+ Added request options:
expect_100_timeout (libcurl >= 7.36.0), tcp_nodelay
+ Added transfer info:
curlcode, tls_session (libcurl >= 7.34.0), only available during transfer

2.0.7
* General improvements to the test suite
* Fixed http\Env\Response::send() ignoring some write errors
* Fixed bug #67528 (RFC compliant default user agent)
* Fixed a garbage collector issue with JSON POSTs
* Fixed refcount issue and double free of message bodies
* Fixed use after free if the http\Client::enqueue() closure returns TRUE
* Fixed bug #67584 (http\Client\Response not initialized as response
  on failure)

2.0.6
+ Added "uploaded" progress state
* Fixed bug #67089 (Segmentaion fault with ZTS)
* Fixed compatibility with PHP-5.6+
* Fixed re-use of request messages which content length remained untouched
  when the body was reset

2.0.5
* Fix rare crash with uninitialized CURLOPT_HTTPHEADER
* Fix build with -Werror=format-security (Remi)
* Fix build with extenal libs needed by libcurl

2.0.4
* Removed the pecl/event conflict
* Fixed bug #66388 (Crash on POST with Content-Length:0 and untouched body)

2.0.3
* Fixed typo

2.0.2
* Fixed bug #66250 (shutdown crash as shared extension)

2.0.1
* Fixed a bug with multiple ob_start(http\Env\Response) while
  replacing the body
* Fixed build on Windows with libevent2

2.0.0
Extended HTTP support. Again. Keep in mind that it's got the major version 2,
because it's incompatible with pecl_http v1.

* Introduces the http namespace.
* Message bodies have been remodeled to use PHP temporary streams instead
  of in-memory buffers.
* The utterly misunderstood HttpResponse class has been reimplemented
  as http\Env\Response inheriting http\Message.
* Currently, there's only one Exception class left, http\Exception.
* Errors triggered by the extension can be configured statically by
  http\Object::$defaultErrorHandling or inherited http\Object->errorHandling.
* The request ecosystem has been modularized to support different libraries,
  though for the moment only libcurl is supported.


(fhajny)
diff -r1.2 -r1.3 pkgsrc/www/php-http/Makefile
diff -r1.1 -r1.2 pkgsrc/www/php-http/distinfo

cvs diff -r1.2 -r1.3 pkgsrc/www/php-http/Attic/Makefile (expand / switch to unified diff)

--- pkgsrc/www/php-http/Attic/Makefile 2014/02/12 23:18:46 1.2
+++ pkgsrc/www/php-http/Attic/Makefile 2015/04/08 19:57:23 1.3
@@ -1,27 +1,44 @@ @@ -1,27 +1,44 @@
1# $NetBSD: Makefile,v 1.2 2014/02/12 23:18:46 tron Exp $ 1# $NetBSD: Makefile,v 1.3 2015/04/08 19:57:23 fhajny Exp $
2 2
3MODNAME= http 3MODNAME= http
4PKGREVISION= 1 4PECL_VERSION= 2.4.3
5PECL_VERSION= 1.7.6 
6CATEGORIES+= www 5CATEGORIES+= www
7 6
8PECL_DISTNAME= pecl_http-${PECL_VERSION} 7PECL_DISTNAME= pecl_http-${PECL_VERSION}
9 8
10MAINTAINER= filip@joyent.com 9MAINTAINER= filip@joyent.com
11HOMEPAGE= http://pecl.php.net/package/pecl_http 10HOMEPAGE= http://pecl.php.net/package/pecl_http
12COMMENT= PHP extension for extended HTTP support 11COMMENT= PHP extension for extended HTTP support
13LICENSE= 2-clause-bsd AND isc 12LICENSE= 2-clause-bsd AND isc
14 13
15CONFLICTS= php-http-[0-9]* 14CONFLICTS= php-http-[0-9]*
16 15
17CONFIGURE_ARGS+= --with-http-curl-requests=${BUILDLINK_PREFIX.curl} 16USE_LANGUAGES= c c++
18CONFIGURE_ARGS+= --with-http-curl-libevent=${BUILDLINK_PREFIX.libevent} 17USE_LIBTOOL= yes
19CONFIGURE_ARGS+= --with-http-magic-mime=${BUILDLINK_PREFIX.file} 18
20CONFIGURE_ARGS+= --with-http-zlib-compression=${BUILDLINK_PREFIX.zlib} 19CONFIGURE_ARGS+= --with-http
 20CONFIGURE_ARGS+= --with-http-libcurl-dir=${BUILDLINK_PREFIX.curl}
 21CONFIGURE_ARGS+= --with-http-libevent-dir=${BUILDLINK_PREFIX.libevent}
 22CONFIGURE_ARGS+= --with-http-libidn-dir=${BUILDLINK_PREFIX.libidn}
 23CONFIGURE_ARGS+= --with-http-zlib-dir=${BUILDLINK_PREFIX.zlib}
 24
 25SUBST_CLASSES+= ini
 26SUBST_STAGE.ini= pre-patch
 27SUBST_MESSAGE.ini= Redirecting to temporary php.ini file
 28SUBST_FILES.ini= config9.m4
 29SUBST_SED.ini= -e 's,PHP_EXECUTABLE -m,PHP_EXECUTABLE -c ${WRKDIR} -m,'
 30
 31post-extract:
 32 (${ECHO} "[PHP]" ;\
 33 ${ECHO} "extension=propro.so" ; ${ECHO} "extension=raphf.so" \
 34 ) > ${WRKDIR}/php.ini
21 35
22.include "../../lang/php/ext.mk" 
23.include "../../www/curl/buildlink3.mk" 
24.include "../../devel/libevent/buildlink3.mk" 36.include "../../devel/libevent/buildlink3.mk"
25.include "../../sysutils/file/buildlink3.mk" 37.include "../../devel/libidn/buildlink3.mk"
 38.include "../../devel/php-raphf/buildlink3.mk"
26.include "../../devel/zlib/buildlink3.mk" 39.include "../../devel/zlib/buildlink3.mk"
 40.include "../../sysutils/file/buildlink3.mk"
 41.include "../../www/curl/buildlink3.mk"
 42.include "../../www/php-propro/buildlink3.mk"
 43.include "../../lang/php/ext.mk"
27.include "../../mk/bsd.pkg.mk" 44.include "../../mk/bsd.pkg.mk"

cvs diff -r1.1 -r1.2 pkgsrc/www/php-http/Attic/distinfo (expand / switch to unified diff)

--- pkgsrc/www/php-http/Attic/distinfo 2013/09/13 08:28:18 1.1
+++ pkgsrc/www/php-http/Attic/distinfo 2015/04/08 19:57:23 1.2
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
1$NetBSD: distinfo,v 1.1 2013/09/13 08:28:18 fhajny Exp $ 1$NetBSD: distinfo,v 1.2 2015/04/08 19:57:23 fhajny Exp $
2 2
3SHA1 (php-http/pecl_http-1.7.6.tgz) = 44e28b6d2d9d352c5b949f14bc4dd612e4365c85 3SHA1 (php-http/pecl_http-2.4.3.tgz) = 0c9b8da25be833cd2f0bc7cb8b8b82f5acc21c62
4RMD160 (php-http/pecl_http-1.7.6.tgz) = bd873c720f36944b219eac8c3b44fa4b9164c21a 4RMD160 (php-http/pecl_http-2.4.3.tgz) = 7de8495e55295139ef93d2b93a636e68e1b22354
5Size (php-http/pecl_http-1.7.6.tgz) = 174722 bytes 5Size (php-http/pecl_http-2.4.3.tgz) = 188540 bytes