changeset 2080:dd2ac0a72169

package gsoap: upgrade to v2.8.4 with fix
author Mark Brand <mabrand@mabrand.nl>
date Mon, 07 Nov 2011 16:01:10 +0100
parents 0c705ad8e69b
children 07f7a629b4da
files src/gsoap-1-fixes.patch src/gsoap.mk
diffstat 2 files changed, 202 insertions(+), 47 deletions(-) [+]
line wrap: on
line diff
--- a/src/gsoap-1-fixes.patch	Sun Nov 06 20:28:42 2011 +0100
+++ b/src/gsoap-1-fixes.patch	Mon Nov 07 16:01:10 2011 +0100
@@ -3,65 +3,220 @@
 
 Contains ad hoc patches for cross building.
 
-From 35024d3ef8fb879a92de71b738ad985b6e8318af Mon Sep 17 00:00:00 2001
-From: mingw-cross-env
-Date: Mon, 19 Sep 2011 15:22:59 +0200
-Subject: [PATCH] bugfix for 2.8.3 from:
- http://www.cs.fsu.edu/~engelen/soapbugs.html
+From a4e9166bc8d78b2aee3c25757d479d4c2e53c7be Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Sun, 23 Oct 2011 21:36:53 +0200
+Subject: [PATCH 1/3] support static linking to ntlm
+
+---
+ configure |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/configure b/configure
+index ad1830d..be95edf 100755
+--- a/configure
++++ b/configure
+@@ -4822,7 +4822,7 @@ case "${host}" in
+ 			;;
+ 	*-*-cygwin*)	platform=CYGWIN ;;
+ 	*-*-mingw*)	platform=MINGW
+-			SAMPLE_EXTRA_LIBS="-lws2_32 -lkernel32 -luser32 -lgdi32"
++			SAMPLE_EXTRA_LIBS="-lntlm -lws2_32 -lkernel32 -luser32 -lgdi32"
+ 			;;
+         *-*-freebsd*)   platform=FREEBSD ;;
+         *-*-openbsd*)   platform=OPENBSD ;;
+-- 
+1.7.7
 
 
+From da0eb2fc386be0fd914ef8f9a7d6bf73004ea230 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Mon, 24 Oct 2011 11:17:13 +0200
+Subject: [PATCH 2/3] ntlm support in .pc files
+
+---
+ gsoap++.pc.in    |    2 +-
+ gsoap.pc.in      |    2 +-
+ gsoapck++.pc.in  |    2 +-
+ gsoapck.pc.in    |    2 +-
+ gsoapssl++.pc.in |    2 +-
+ gsoapssl.pc.in   |    2 +-
+ 6 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/gsoap++.pc.in b/gsoap++.pc.in
+index 035afd9..3411d55 100644
+--- a/gsoap++.pc.in
++++ b/gsoap++.pc.in
+@@ -8,4 +8,4 @@ Description: SOAP C++ Web Services
+ Version: @VERSION@
+ Requires:
+ Libs: -L${libdir} -lgsoap++ @SAMPLE_EXTRA_LIBS@
+-Cflags: @SOAPCPP2_IPV6@ -DWITH_DOM -I${includedir}
++Cflags: @SOAPCPP2_IPV6@ -DWITH_DOM -DWITH_NTLM -I${includedir}
+diff --git a/gsoap.pc.in b/gsoap.pc.in
+index e2607aa..96a54b9 100644
+--- a/gsoap.pc.in
++++ b/gsoap.pc.in
+@@ -8,4 +8,4 @@ Description: SOAP C Web Services
+ Version: @VERSION@
+ Requires:
+ Libs: -L${libdir} -lgsoap @SAMPLE_EXTRA_LIBS@
+-Cflags: @SOAPCPP2_IPV6@ -DWITH_DOM -I${includedir}
++Cflags: @SOAPCPP2_IPV6@ -DWITH_DOM -DWITH_NTLM -I${includedir}
+diff --git a/gsoapck++.pc.in b/gsoapck++.pc.in
+index cb03e2f..b349049 100644
+--- a/gsoapck++.pc.in
++++ b/gsoapck++.pc.in
+@@ -8,4 +8,4 @@ Description: SOAP C++ Web Services with Cookies Enabled
+ Version: @VERSION@
+ Requires:
+ Libs: -L${libdir} -lgsoapck++ @SAMPLE_EXTRA_LIBS@
+-Cflags: @SOAPCPP2_IPV6@ -DWITH_COOKIES -DWITH_DOM -I${includedir}
++Cflags: @SOAPCPP2_IPV6@ -DWITH_COOKIES -DWITH_DOM -DWITH_NTLM -I${includedir}
+diff --git a/gsoapck.pc.in b/gsoapck.pc.in
+index 859a922..e5ce5eb 100644
+--- a/gsoapck.pc.in
++++ b/gsoapck.pc.in
+@@ -8,4 +8,4 @@ Description: SOAP C Web Services with Cookies Enabled
+ Version: @VERSION@
+ Requires:
+ Libs: -L${libdir} -lgsoapck @SAMPLE_EXTRA_LIBS@
+-Cflags: @SOAPCPP2_IPV6@ -DWITH_COOKIES -DWITH_DOM -I${includedir}
++Cflags: @SOAPCPP2_IPV6@ -DWITH_COOKIES -DWITH_DOM -DWITH_NTLM -I${includedir}
+diff --git a/gsoapssl++.pc.in b/gsoapssl++.pc.in
+index 391d820..791408a 100644
+--- a/gsoapssl++.pc.in
++++ b/gsoapssl++.pc.in
+@@ -8,4 +8,4 @@ Description: SOAP C++ Web Services with SSL and ZLIB
+ Version: @VERSION@
+ Requires:
+ Libs: -L${libdir} -lgsoapssl++ @SAMPLE_SSL_LIBS@ @SAMPLE_EXTRA_LIBS@
+-Cflags: @SOAPCPP2_IPV6@ -DWITH_OPENSSL -DWITH_DOM -DWITH_COOKIES -DWITH_GZIP -I${includedir}
++Cflags: @SOAPCPP2_IPV6@ -DWITH_OPENSSL -DWITH_DOM -DWITH_NTLM -DWITH_COOKIES -DWITH_GZIP -I${includedir}
+diff --git a/gsoapssl.pc.in b/gsoapssl.pc.in
+index 79c940a..17c9ee3 100644
+--- a/gsoapssl.pc.in
++++ b/gsoapssl.pc.in
+@@ -8,4 +8,4 @@ Description: SOAP C Web Services with SSL and ZLIB
+ Version: @VERSION@
+ Requires:
+ Libs: -L${libdir} -lgsoapssl @SAMPLE_SSL_LIBS@ @SAMPLE_EXTRA_LIBS@
+-Cflags: @SOAPCPP2_IPV6@ -DWITH_OPENSSL -DWITH_DOM -DWITH_COOKIES -DWITH_GZIP -I${includedir}
++Cflags: @SOAPCPP2_IPV6@ -DWITH_OPENSSL -DWITH_DOM -DWITH_NTLM -DWITH_COOKIES -DWITH_GZIP -I${includedir}
+-- 
+1.7.7
+
+
+From bdaf871136077ba282b1824eb7765143ccf4b40d Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Mon, 7 Nov 2011 14:43:55 +0100
+Subject: [PATCH 3/3] fix base64 encoding for Basic Authentication
+
+taken from:
+https://sourceforge.net/tracker/?func=detail&aid=3434518&group_id=52781&atid=468023
+---
+ gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp  |    4 ++--
+ gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp |    4 ++--
+ gsoap/stdsoap2.c                                   |    4 ++--
+ gsoap/stdsoap2.cpp                                 |    4 ++--
+ 4 files changed, 8 insertions(+), 8 deletions(-)
+
 diff --git a/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp b/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp
-index 6f05170..f31676b 100644
+index 83405cd..71838e9 100644
 --- a/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp
 +++ b/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp
-@@ -8261,7 +8261,7 @@ soap_copy_context(struct soap *copy, const struct soap *soap)
-     soap_set_recv_logfile(copy, soap->logfile[SOAP_INDEX_RECV]);
+@@ -5684,8 +5684,8 @@ http_post(struct soap *soap, const char *endpoint, const char *host, int port, c
+     else
  #endif
-     copy->local_namespaces = NULL;
--    soap_set_namespaces(copy, soap->local_namespaces);
-+    soap_set_namespaces(copy, soap->namespaces);
- #ifdef WITH_C_LOCALE
-     copy->c_locale = duplocale(soap->c_locale);
- #else
+     { strcpy(soap->tmpbuf, "Basic ");
+-      soap_s2base64(soap, (const unsigned char*)(soap->tmpbuf + 262), soap->tmpbuf + 6, (int)strlen(soap->tmpbuf + 262));
+       sprintf(soap->tmpbuf + 262, "%s:%s", soap->userid, soap->passwd);
++      soap_s2base64(soap, (const unsigned char*)(soap->tmpbuf + 262), soap->tmpbuf + 6, (int)strlen(soap->tmpbuf + 262));
+     }
+     if ((err = soap->fposthdr(soap, "Authorization", soap->tmpbuf)))
+       return err;
+@@ -5698,8 +5698,8 @@ http_post(struct soap *soap, const char *endpoint, const char *host, int port, c
+     else
+ #endif
+     { strcpy(soap->tmpbuf, "Basic ");
+-      soap_s2base64(soap, (const unsigned char*)(soap->tmpbuf + 262), soap->tmpbuf + 6, (int)strlen(soap->tmpbuf + 262));
+       sprintf(soap->tmpbuf + 262, "%s:%s", soap->proxy_userid, soap->proxy_passwd);
++      soap_s2base64(soap, (const unsigned char*)(soap->tmpbuf + 262), soap->tmpbuf + 6, (int)strlen(soap->tmpbuf + 262));
+     }
+     if ((err = soap->fposthdr(soap, "Proxy-Authorization", soap->tmpbuf)))
+       return err;
 diff --git a/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp b/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp
-index 6f05170..f31676b 100644
+index 83405cd..71838e9 100644
 --- a/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp
 +++ b/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp
-@@ -8261,7 +8261,7 @@ soap_copy_context(struct soap *copy, const struct soap *soap)
-     soap_set_recv_logfile(copy, soap->logfile[SOAP_INDEX_RECV]);
+@@ -5684,8 +5684,8 @@ http_post(struct soap *soap, const char *endpoint, const char *host, int port, c
+     else
  #endif
-     copy->local_namespaces = NULL;
--    soap_set_namespaces(copy, soap->local_namespaces);
-+    soap_set_namespaces(copy, soap->namespaces);
- #ifdef WITH_C_LOCALE
-     copy->c_locale = duplocale(soap->c_locale);
- #else
+     { strcpy(soap->tmpbuf, "Basic ");
+-      soap_s2base64(soap, (const unsigned char*)(soap->tmpbuf + 262), soap->tmpbuf + 6, (int)strlen(soap->tmpbuf + 262));
+       sprintf(soap->tmpbuf + 262, "%s:%s", soap->userid, soap->passwd);
++      soap_s2base64(soap, (const unsigned char*)(soap->tmpbuf + 262), soap->tmpbuf + 6, (int)strlen(soap->tmpbuf + 262));
+     }
+     if ((err = soap->fposthdr(soap, "Authorization", soap->tmpbuf)))
+       return err;
+@@ -5698,8 +5698,8 @@ http_post(struct soap *soap, const char *endpoint, const char *host, int port, c
+     else
+ #endif
+     { strcpy(soap->tmpbuf, "Basic ");
+-      soap_s2base64(soap, (const unsigned char*)(soap->tmpbuf + 262), soap->tmpbuf + 6, (int)strlen(soap->tmpbuf + 262));
+       sprintf(soap->tmpbuf + 262, "%s:%s", soap->proxy_userid, soap->proxy_passwd);
++      soap_s2base64(soap, (const unsigned char*)(soap->tmpbuf + 262), soap->tmpbuf + 6, (int)strlen(soap->tmpbuf + 262));
+     }
+     if ((err = soap->fposthdr(soap, "Proxy-Authorization", soap->tmpbuf)))
+       return err;
 diff --git a/gsoap/stdsoap2.c b/gsoap/stdsoap2.c
-index 6f05170..f31676b 100644
+index 83405cd..71838e9 100644
 --- a/gsoap/stdsoap2.c
 +++ b/gsoap/stdsoap2.c
-@@ -8261,7 +8261,7 @@ soap_copy_context(struct soap *copy, const struct soap *soap)
-     soap_set_recv_logfile(copy, soap->logfile[SOAP_INDEX_RECV]);
+@@ -5684,8 +5684,8 @@ http_post(struct soap *soap, const char *endpoint, const char *host, int port, c
+     else
  #endif
-     copy->local_namespaces = NULL;
--    soap_set_namespaces(copy, soap->local_namespaces);
-+    soap_set_namespaces(copy, soap->namespaces);
- #ifdef WITH_C_LOCALE
-     copy->c_locale = duplocale(soap->c_locale);
- #else
+     { strcpy(soap->tmpbuf, "Basic ");
+-      soap_s2base64(soap, (const unsigned char*)(soap->tmpbuf + 262), soap->tmpbuf + 6, (int)strlen(soap->tmpbuf + 262));
+       sprintf(soap->tmpbuf + 262, "%s:%s", soap->userid, soap->passwd);
++      soap_s2base64(soap, (const unsigned char*)(soap->tmpbuf + 262), soap->tmpbuf + 6, (int)strlen(soap->tmpbuf + 262));
+     }
+     if ((err = soap->fposthdr(soap, "Authorization", soap->tmpbuf)))
+       return err;
+@@ -5698,8 +5698,8 @@ http_post(struct soap *soap, const char *endpoint, const char *host, int port, c
+     else
+ #endif
+     { strcpy(soap->tmpbuf, "Basic ");
+-      soap_s2base64(soap, (const unsigned char*)(soap->tmpbuf + 262), soap->tmpbuf + 6, (int)strlen(soap->tmpbuf + 262));
+       sprintf(soap->tmpbuf + 262, "%s:%s", soap->proxy_userid, soap->proxy_passwd);
++      soap_s2base64(soap, (const unsigned char*)(soap->tmpbuf + 262), soap->tmpbuf + 6, (int)strlen(soap->tmpbuf + 262));
+     }
+     if ((err = soap->fposthdr(soap, "Proxy-Authorization", soap->tmpbuf)))
+       return err;
 diff --git a/gsoap/stdsoap2.cpp b/gsoap/stdsoap2.cpp
-index 6f05170..f31676b 100644
+index 83405cd..71838e9 100644
 --- a/gsoap/stdsoap2.cpp
 +++ b/gsoap/stdsoap2.cpp
-@@ -8261,7 +8261,7 @@ soap_copy_context(struct soap *copy, const struct soap *soap)
-     soap_set_recv_logfile(copy, soap->logfile[SOAP_INDEX_RECV]);
+@@ -5684,8 +5684,8 @@ http_post(struct soap *soap, const char *endpoint, const char *host, int port, c
+     else
  #endif
-     copy->local_namespaces = NULL;
--    soap_set_namespaces(copy, soap->local_namespaces);
-+    soap_set_namespaces(copy, soap->namespaces);
- #ifdef WITH_C_LOCALE
-     copy->c_locale = duplocale(soap->c_locale);
- #else
+     { strcpy(soap->tmpbuf, "Basic ");
+-      soap_s2base64(soap, (const unsigned char*)(soap->tmpbuf + 262), soap->tmpbuf + 6, (int)strlen(soap->tmpbuf + 262));
+       sprintf(soap->tmpbuf + 262, "%s:%s", soap->userid, soap->passwd);
++      soap_s2base64(soap, (const unsigned char*)(soap->tmpbuf + 262), soap->tmpbuf + 6, (int)strlen(soap->tmpbuf + 262));
+     }
+     if ((err = soap->fposthdr(soap, "Authorization", soap->tmpbuf)))
+       return err;
+@@ -5698,8 +5698,8 @@ http_post(struct soap *soap, const char *endpoint, const char *host, int port, c
+     else
+ #endif
+     { strcpy(soap->tmpbuf, "Basic ");
+-      soap_s2base64(soap, (const unsigned char*)(soap->tmpbuf + 262), soap->tmpbuf + 6, (int)strlen(soap->tmpbuf + 262));
+       sprintf(soap->tmpbuf + 262, "%s:%s", soap->proxy_userid, soap->proxy_passwd);
++      soap_s2base64(soap, (const unsigned char*)(soap->tmpbuf + 262), soap->tmpbuf + 6, (int)strlen(soap->tmpbuf + 262));
+     }
+     if ((err = soap->fposthdr(soap, "Proxy-Authorization", soap->tmpbuf)))
+       return err;
 -- 
-1.7.6.1
+1.7.7
 
--- a/src/gsoap.mk	Sun Nov 06 20:28:42 2011 +0100
+++ b/src/gsoap.mk	Mon Nov 07 16:01:10 2011 +0100
@@ -4,18 +4,17 @@
 # gSOAP
 PKG             := gsoap
 $(PKG)_IGNORE   :=
-$(PKG)_VERSION  := 2.8.3
-$(PKG)_CHECKSUM := 55677239751253b48f448eb30a7585df97cba486
+$(PKG)_VERSION  := 2.8.4
+$(PKG)_CHECKSUM := fea8734c83c2b5f9d07c44c556b27a6ce7ff0649
 $(PKG)_SUBDIR   := gsoap-$(call SHORT_PKG_VERSION,$(PKG))
 $(PKG)_FILE     := gsoap_$($(PKG)_VERSION).zip
 $(PKG)_WEBSITE  := http://gsoap2.sourceforge.net/
 $(PKG)_URL      := http://$(SOURCEFORGE_MIRROR)/project/gsoap2/gSOAP/$($(PKG)_FILE)
-$(PKG)_DEPS     := gcc gnutls libgcrypt
+$(PKG)_DEPS     := gcc gnutls libgcrypt libntlm
 
 define $(PKG)_UPDATE
     wget -q -O- 'http://sourceforge.net/projects/gsoap2/files/gSOAP/' | \
     $(SED) -n 's,.*gsoap_\([0-9][^>]*\)\.zip.*,\1,p' | \
-    grep -v '2\.8\.4' | \
     head -1
 endef
 
@@ -43,7 +42,8 @@
     cd '$(1)' && ac_cv_func_malloc_0_nonnull=yes ./configure \
         --prefix='$(PREFIX)/$(TARGET)' \
         --host='$(TARGET)' \
-        --enable-gnutls
+        --enable-gnutls \
+        CPPFLAGS='-DWITH_NTLM'
 
     # Building for mingw requires native soapcpp2
     ln -sf '$(PREFIX)/bin/$(TARGET)-soapcpp2' '$(1)/gsoap/src/soapcpp2'