gsoap: update to 2.8.46.

This commit is contained in:
Enno Boland 2017-05-20 23:34:12 +02:00
parent 76cf558406
commit 27bf261bbe
4 changed files with 65 additions and 49 deletions

View File

@ -1,43 +0,0 @@
--- gsoap/plugin/smdevp.c.orig 2017-01-15 20:09:56.876555589 +0100
+++ gsoap/plugin/smdevp.c 2017-01-15 20:10:50.012509531 +0100
@@ -306,6 +306,40 @@ the digest or signature produced.
extern "C" {
#endif
+#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined (LIBRESSL_VERSION_NUMBER)
+static EVP_MD_CTX *EVP_MD_CTX_new(void)
+{
+ EVP_MD_CTX *ctx = (EVP_MD_CTX *)malloc(sizeof(*ctx));
+ if (ctx != NULL)
+ EVP_MD_CTX_init(ctx);
+ return ctx;
+}
+
+static void EVP_MD_CTX_free(EVP_MD_CTX *ctx)
+{
+ if (ctx != NULL) {
+ EVP_MD_CTX_cleanup(ctx);
+ free(ctx);
+ }
+}
+
+static HMAC_CTX *HMAC_CTX_new(void)
+{
+ HMAC_CTX *ctx = (HMAC_CTX *)malloc(sizeof(*ctx));
+ if (ctx != NULL)
+ HMAC_CTX_init(ctx);
+ return ctx;
+}
+
+static void HMAC_CTX_free(HMAC_CTX *ctx)
+{
+ if (ctx != NULL) {
+ HMAC_CTX_cleanup(ctx);
+ free(ctx);
+ }
+}
+#endif
+
/******************************************************************************\
*
* Static protos

View File

@ -0,0 +1,40 @@
diff --git a/gsoap/plugin/smdevp.c b/gsoap/plugin/smdevp.c
index a42d7be..193f470 100644
--- gsoap/plugin/smdevp.c
+++ gsoap/plugin/smdevp.c
@@ -479,7 +479,7 @@ soap_smd_init(struct soap *soap, struct soap_smd_data *data, int alg, const void
/* allocate and init the OpenSSL HMAC or EVP_MD context */
if ((alg & SOAP_SMD_ALGO) == SOAP_SMD_HMAC)
{
-#if (OPENSSL_VERSION_NUMBER < 0x10100000L)
+#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER)
data->ctx = (void*)SOAP_MALLOC(soap, sizeof(HMAC_CTX));
if (data->ctx)
HMAC_CTX_init((HMAC_CTX*)data->ctx);
@@ -489,7 +489,7 @@ soap_smd_init(struct soap *soap, struct soap_smd_data *data, int alg, const void
}
else
{
-#if (OPENSSL_VERSION_NUMBER < 0x10100000L)
+#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER)
data->ctx = (void*)SOAP_MALLOC(soap, sizeof(EVP_MD_CTX));
if (data->ctx)
EVP_MD_CTX_init((EVP_MD_CTX*)data->ctx);
@@ -642,7 +642,7 @@ soap_smd_final(struct soap *soap, struct soap_smd_data *data, char *buf, int *le
*len = (int)n;
}
/* cleanup */
-#if (OPENSSL_VERSION_NUMBER < 0x10100000L)
+#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER)
if ((data->alg & SOAP_SMD_ALGO) == SOAP_SMD_HMAC)
HMAC_CTX_cleanup((HMAC_CTX*)data->ctx);
else
@@ -687,7 +687,7 @@ soap_smd_check(struct soap *soap, struct soap_smd_data *data, int ok, const char
}
if (data->ctx)
{
-#if (OPENSSL_VERSION_NUMBER < 0x10100000L)
+#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(OPENSSL_VERSION_NUMBER)
if ((data->alg & SOAP_SMD_ALGO) == SOAP_SMD_HMAC)
HMAC_CTX_cleanup((HMAC_CTX*)data->ctx);
else

View File

@ -0,0 +1,22 @@
--- ./gsoap/stdsoap2.cpp.orig
+++ ./gsoap/stdsoap2.cpp
@@ -18691,7 +18691,7 @@
{
#ifndef WIN32
# ifdef HAVE_STRERROR_R
-# if defined(_GNU_SOURCE) && !defined(__ANDROID__)
+# if defined(_GNU_SOURCE) && !defined(__ANDROID__) && defined(__GLIBC__)
return strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* GNU-specific */
# else
strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* XSI-compliant */
--- ./gsoap/stdsoap2.h.orig
+++ ./gsoap/stdsoap2.h
@@ -943,7 +943,7 @@
# endif
#elif defined(SOCKLEN_T)
# define SOAP_SOCKLEN_T SOCKLEN_T
-#elif defined(__socklen_t_defined) || defined(_SOCKLEN_T) || defined(CYGWIN) || defined(FREEBSD) || defined(__FreeBSD__) || defined(OPENBSD) || defined(__QNX__) || defined(QNX) || defined(OS390) || defined(__ANDROID__) || defined(_XOPEN_SOURCE)
+#elif defined(__socklen_t_defined) || defined(_SOCKLEN_T) || defined(CYGWIN) || defined(FREEBSD) || defined(__FreeBSD__) || defined(OPENBSD) || defined(__QNX__) || defined(QNX) || defined(OS390) || defined(__ANDROID__) || defined(_XOPEN_SOURCE) || defined (LINUX)
# define SOAP_SOCKLEN_T socklen_t
#elif defined(IRIX) || defined(WIN32) || defined(__APPLE__) || defined(SUN_OS) || defined(OPENSERVER) || defined(TRU64) || defined(VXWORKS)
# define SOAP_SOCKLEN_T int

View File

@ -1,6 +1,6 @@
# Template file for 'gsoap'
pkgname=gsoap
version=2.8.45
version=2.8.46
revision=1
build_style=gnu-configure
hostmakedepends="unzip flex autoconf"
@ -13,13 +13,10 @@ maintainer="Enno Boland <gottox@voidlinux.eu>"
license="GPL-3"
homepage="http://www.cs.fsu.edu/~engelen/soap.html"
distfiles="${SOURCEFORGE_SITE}/gsoap2/gsoap_${version}.zip"
checksum=81946d1ecd99ea414383d5f090e6b292908ff3ac0211cb097a1d1d54e9808bce
checksum=3083818fb42b9e7251daf21728132db15354eb8c14060c2dc6949dafbec976be
wrksrc="${pkgname}-${version%.*}"
disable_parallel_build=yes
case "$XBPS_TARGET_MACHINE" in
*-musl) broken="https://build.voidlinux.eu/builders/x86_64-musl_builder/builds/11649/steps/shell_3/logs/stdio";;
esac
configure_args=" --enable-ipv6"
gsoap-devel_package() {
depends="gsoap>=${version}_${revision} $makedepends"