Date: Monday, September 23, 2013 @ 05:38:39 Author: angvp Revision: 194715
upgpkg: serf 1.3.1-2 Applying patch for FS#36070 Added: serf/trunk/serf-ssl-allocator-v2.patch Modified: serf/trunk/PKGBUILD -----------------------------+ PKGBUILD | 13 +++++++-- serf-ssl-allocator-v2.patch | 57 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 3 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2013-09-23 03:35:04 UTC (rev 194714) +++ PKGBUILD 2013-09-23 03:38:39 UTC (rev 194715) @@ -4,7 +4,7 @@ pkgname=serf pkgver=1.3.1 -pkgrel=1 +pkgrel=2 pkgdesc="High-performance asynchronous HTTP client library" arch=('i686' 'x86_64') url="http://code.google.com/p/serf/" @@ -12,9 +12,16 @@ depends=('apr-util') makedepends=('scons') options=('!libtool' '!staticlibs') -source=(http://serf.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2) -md5sums=('da5aca0cad19fd9c19129c3f8f7393dd') +source=(http://serf.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2 'serf-ssl-allocator-v2.patch') +md5sums=('da5aca0cad19fd9c19129c3f8f7393dd' + 'a0ff486ee26f86cb2825decfd1dc8355') +prepare() { + mv serf-ssl-allocator-v2.patch ${pkgname}-${pkgver} + cd ${pkgname}-${pkgver} + patch -Np0 -i serf-ssl-allocator-v2.patch +} + build() { cd ${pkgname}-${pkgver} scons PREFIX=/usr Added: serf-ssl-allocator-v2.patch =================================================================== --- serf-ssl-allocator-v2.patch (rev 0) +++ serf-ssl-allocator-v2.patch 2013-09-23 03:38:39 UTC (rev 194715) @@ -0,0 +1,57 @@ +Index: buckets/ssl_buckets.c +=================================================================== +--- buckets/ssl_buckets.c (revision 2130) ++++ buckets/ssl_buckets.c (working copy) +@@ -1192,21 +1192,16 @@ + context->server_cert_userdata = data; + } + +-static serf_ssl_context_t *ssl_init_context(void) ++static serf_ssl_context_t *ssl_init_context(serf_bucket_alloc_t *allocator) + { + serf_ssl_context_t *ssl_ctx; +- apr_pool_t *pool; +- serf_bucket_alloc_t *allocator; + + init_ssl_libraries(); + +- apr_pool_create(&pool, NULL); +- allocator = serf_bucket_allocator_create(pool, NULL, NULL); +- + ssl_ctx = serf_bucket_mem_alloc(allocator, sizeof(*ssl_ctx)); + + ssl_ctx->refcount = 0; +- ssl_ctx->pool = pool; ++ ssl_ctx->pool = serf_bucket_allocator_get_pool(allocator); + ssl_ctx->allocator = allocator; + + ssl_ctx->ctx = SSL_CTX_new(SSLv23_client_method()); +@@ -1263,8 +1258,6 @@ + static apr_status_t ssl_free_context( + serf_ssl_context_t *ssl_ctx) + { +- apr_pool_t *p; +- + /* If never had the pending buckets, don't try to free them. */ + if (ssl_ctx->decrypt.pending != NULL) { + serf_bucket_destroy(ssl_ctx->decrypt.pending); +@@ -1277,10 +1270,7 @@ + SSL_free(ssl_ctx->ssl); + SSL_CTX_free(ssl_ctx->ctx); + +- p = ssl_ctx->pool; +- + serf_bucket_mem_free(ssl_ctx->allocator, ssl_ctx); +- apr_pool_destroy(p); + + return APR_SUCCESS; + } +@@ -1294,7 +1284,7 @@ + + ctx = serf_bucket_mem_alloc(allocator, sizeof(*ctx)); + if (!ssl_ctx) { +- ctx->ssl_ctx = ssl_init_context(); ++ ctx->ssl_ctx = ssl_init_context(allocator); + } + else { + ctx->ssl_ctx = ssl_ctx;