From 1a9c528af192c07f926197582da83386c8ddb798 Mon Sep 17 00:00:00 2001 From: Mark Brand Date: Mon, 7 Nov 2011 16:01:10 +0100 Subject: [PATCH] package gsoap: upgrade to v2.8.4 with fix --- src/gsoap-1-fixes.patch | 239 +++++++++++++++++++++++++++++++++------- src/gsoap.mk | 10 +- 2 files changed, 202 insertions(+), 47 deletions(-) diff --git a/src/gsoap-1-fixes.patch b/src/gsoap-1-fixes.patch index b60c110f..e5afa6f2 100644 --- a/src/gsoap-1-fixes.patch +++ b/src/gsoap-1-fixes.patch @@ -3,65 +3,220 @@ See doc/index.html for further information. 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 +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 +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 +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 diff --git a/src/gsoap.mk b/src/gsoap.mk index 5cdc6b23..1e22716b 100644 --- a/src/gsoap.mk +++ b/src/gsoap.mk @@ -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 @@ define $(PKG)_BUILD 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'