From 7d26e4a07def41b2bca90d877196eb457138a2cfa06f0debe15f55c732b1c4fe Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Thu, 28 Jan 2016 19:06:37 +0000 Subject: [PATCH 1/8] - add gsoap-00-builtsource.diff, gsoap-03-seqpoint.diff to fix more compiler warnings OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/gsoap?expand=0&rev=45 --- gsoap-00-builtsource.diff | 23 ++++++++++++++ gsoap-01-sharedlibs.diff | 26 +++++++-------- gsoap-02-typepuns.diff | 67 ++++++--------------------------------- gsoap-03-seqpoint.diff | 54 +++++++++++++++++++++++++++++++ gsoap-allocator.diff | 4 +-- gsoap.changes | 6 ++++ gsoap.spec | 12 ++++--- 7 files changed, 114 insertions(+), 78 deletions(-) create mode 100644 gsoap-00-builtsource.diff create mode 100644 gsoap-03-seqpoint.diff diff --git a/gsoap-00-builtsource.diff b/gsoap-00-builtsource.diff new file mode 100644 index 0000000..ec317c8 --- /dev/null +++ b/gsoap-00-builtsource.diff @@ -0,0 +1,23 @@ +From: Jan Engelhardt +Date: 2016-01-28 19:30:10.973606466 +0100 + +Every .c/.cpp file which is updated/created needs to be in +BUILT_SOURCES. + +--- + gsoap/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: gsoap-2.8.22/gsoap/Makefile.am +=================================================================== +--- gsoap-2.8.22.orig/gsoap/Makefile.am ++++ gsoap-2.8.22/gsoap/Makefile.am +@@ -49,7 +49,7 @@ libgsoapssl_a_CFLAGS = $(SOAPCPP2_DEBUG) + libgsoapssl___a_SOURCES = stdsoap2_ssl_cpp.cpp dom_cpp.cpp + libgsoapssl___a_CXXFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) $(WSDL2H_EXTRA_FLAGS) -DWITH_DOM + +-BUILT_SOURCES = stdsoap2_cpp.cpp dom_cpp.cpp $(lib_LIBRARIES) ++BUILT_SOURCES = stdsoap2_ck.c stdsoap2_cpp.cpp stdsoap2_ck_cpp.cpp stdsoap2_ssl.c stdsoap2_ssl_cpp.cpp dom.cpp + + include_HEADERS = stdsoap2.h + diff --git a/gsoap-01-sharedlibs.diff b/gsoap-01-sharedlibs.diff index 737bedd..99deba1 100644 --- a/gsoap-01-sharedlibs.diff +++ b/gsoap-01-sharedlibs.diff @@ -10,10 +10,10 @@ build: always use shared libraries gsoap/samples/databinding/Makefile.am | 2 +- 4 files changed, 28 insertions(+), 20 deletions(-) -Index: gsoap-2.8.21/configure.ac +Index: gsoap-2.8.22/configure.ac =================================================================== ---- gsoap-2.8.21.orig/configure.ac -+++ gsoap-2.8.21/configure.ac +--- gsoap-2.8.22.orig/configure.ac ++++ gsoap-2.8.22/configure.ac @@ -15,8 +15,8 @@ AM_PROG_CC_C_O AM_PROG_LEX AC_PROG_YACC @@ -52,10 +52,10 @@ Index: gsoap-2.8.21/configure.ac fi AC_SUBST(WSDL2H_EXTRA_FLAGS) AC_SUBST(WSDL2H_EXTRA_LIBS) -Index: gsoap-2.8.21/gsoap/Makefile.am +Index: gsoap-2.8.22/gsoap/Makefile.am =================================================================== ---- gsoap-2.8.21.orig/gsoap/Makefile.am -+++ gsoap-2.8.21/gsoap/Makefile.am +--- gsoap-2.8.22.orig/gsoap/Makefile.am ++++ gsoap-2.8.22/gsoap/Makefile.am @@ -34,20 +34,28 @@ stdsoap2_ssl_cpp.cpp: stdsoap2.cpp dom_cpp.cpp: dom.cpp $(LN_S) -f $(srcdir)/dom.cpp dom_cpp.cpp @@ -96,12 +96,12 @@ Index: gsoap-2.8.21/gsoap/Makefile.am +libgsoapssl___la_LDFLAGS = ${libgsoap_la_LDFLAGS} +libgsoapssl___la_LIBADD = ${SAMPLE_SSL_LIBS} - BUILT_SOURCES = stdsoap2_cpp.cpp dom_cpp.cpp $(lib_LIBRARIES) + BUILT_SOURCES = stdsoap2_ck.c stdsoap2_cpp.cpp stdsoap2_ck_cpp.cpp stdsoap2_ssl.c stdsoap2_ssl_cpp.cpp dom.cpp -Index: gsoap-2.8.21/gsoap/samples/autotest/Makefile.am +Index: gsoap-2.8.22/gsoap/samples/autotest/Makefile.am =================================================================== ---- gsoap-2.8.21.orig/gsoap/samples/autotest/Makefile.am -+++ gsoap-2.8.21/gsoap/samples/autotest/Makefile.am +--- gsoap-2.8.22.orig/gsoap/samples/autotest/Makefile.am ++++ gsoap-2.8.22/gsoap/samples/autotest/Makefile.am @@ -14,7 +14,7 @@ SOAP_FLAGS=-SL -T -I$(top_srcdir)/gsoap/ WSDLINPUT=$(srcdir)/examples.wsdl SOAPHEADER=$(srcdir)/examples.h @@ -111,10 +111,10 @@ Index: gsoap-2.8.21/gsoap/samples/autotest/Makefile.am $(SOAP_CPP_SRC) : $(WSDLINPUT) $(WSDL) $(WSDL_FLAGS) $(WSDLINPUT) -Index: gsoap-2.8.21/gsoap/samples/databinding/Makefile.am +Index: gsoap-2.8.22/gsoap/samples/databinding/Makefile.am =================================================================== ---- gsoap-2.8.21.orig/gsoap/samples/databinding/Makefile.am -+++ gsoap-2.8.21/gsoap/samples/databinding/Makefile.am +--- gsoap-2.8.22.orig/gsoap/samples/databinding/Makefile.am ++++ gsoap-2.8.22/gsoap/samples/databinding/Makefile.am @@ -14,7 +14,7 @@ SOAP_FLAGS=-0 -CS -p address -I$(top_src WSDLINPUT=$(srcdir)/address.xsd SOAPHEADER=$(srcdir)/address.h diff --git a/gsoap-02-typepuns.diff b/gsoap-02-typepuns.diff index ebb509a..45803ea 100644 --- a/gsoap-02-typepuns.diff +++ b/gsoap-02-typepuns.diff @@ -1,9 +1,14 @@ References: https://sourceforge.net/p/gsoap2/patches/124/attachment/gsoap-aliasing.patch -diff -ur gsoap-2.8.orig/gsoap/plugin/wsaapi.c gsoap-2.8/gsoap/plugin/wsaapi.c ---- gsoap-2.8.orig/gsoap/plugin/wsaapi.c 2015-04-14 08:46:30.000000000 +0200 -+++ gsoap-2.8/gsoap/plugin/wsaapi.c 2015-05-05 09:19:27.985619710 +0200 -@@ -599,7 +599,7 @@ +--- + gsoap/plugin/wsaapi.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: gsoap-2.8.22/gsoap/plugin/wsaapi.c +=================================================================== +--- gsoap-2.8.22.orig/gsoap/plugin/wsaapi.c ++++ gsoap-2.8.22/gsoap/plugin/wsaapi.c +@@ -599,7 +599,7 @@ soap_wsa_rand_uuid(struct soap *soap) k += 0x7FFFFFFF; r2 = k; k &= 0x8FFFFFFF; @@ -12,42 +17,6 @@ diff -ur gsoap-2.8.orig/gsoap/plugin/wsaapi.c gsoap-2.8/gsoap/plugin/wsaapi.c #endif r3 = soap_random; r4 = soap_random; -diff -ur gsoap-2.8.orig/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp gsoap-2.8/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp ---- gsoap-2.8.orig/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp 2015-04-14 08:46:34.000000000 +0200 -+++ gsoap-2.8/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp 2015-05-05 09:01:31.633153838 +0200 -@@ -3105,11 +3105,11 @@ - int - SOAP_FMAC2 - soap_rand() --{ unsigned char buf[4]; -+{ int buf; - if (!soap_ssl_init_done) - soap_ssl_init(); -- RAND_pseudo_bytes(buf, 4); -- return *(int*)buf; -+ RAND_pseudo_bytes((unsigned char*)&buf, sizeof(int)); -+ return buf; - } - #endif - #endif -diff -ur gsoap-2.8.orig/gsoap/stdsoap2.c gsoap-2.8/gsoap/stdsoap2.c ---- gsoap-2.8.orig/gsoap/stdsoap2.c 2015-04-14 08:46:36.000000000 +0200 -+++ gsoap-2.8/gsoap/stdsoap2.c 2015-05-05 09:01:31.633153838 +0200 -@@ -3105,11 +3105,11 @@ - int - SOAP_FMAC2 - soap_rand() --{ unsigned char buf[4]; -+{ int buf; - if (!soap_ssl_init_done) - soap_ssl_init(); -- RAND_pseudo_bytes(buf, 4); -- return *(int*)buf; -+ RAND_pseudo_bytes((unsigned char*)&buf, sizeof(int)); -+ return buf; - } - #endif - #endif diff -ur gsoap-2.8.orig/gsoap/stdsoap2.cpp gsoap-2.8/gsoap/stdsoap2.cpp --- gsoap-2.8.orig/gsoap/stdsoap2.cpp 2015-04-14 08:46:36.000000000 +0200 +++ gsoap-2.8/gsoap/stdsoap2.cpp 2015-05-05 09:01:31.633153838 +0200 @@ -66,21 +35,3 @@ diff -ur gsoap-2.8.orig/gsoap/stdsoap2.cpp gsoap-2.8/gsoap/stdsoap2.cpp } #endif #endif -diff -ur gsoap-2.8.orig/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp gsoap-2.8/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp ---- gsoap-2.8.orig/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp 2015-04-14 08:46:36.000000000 +0200 -+++ gsoap-2.8/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp 2015-05-05 09:01:31.633153838 +0200 -@@ -3105,11 +3105,11 @@ - int - SOAP_FMAC2 - soap_rand() --{ unsigned char buf[4]; -+{ int buf; - if (!soap_ssl_init_done) - soap_ssl_init(); -- RAND_pseudo_bytes(buf, 4); -- return *(int*)buf; -+ RAND_pseudo_bytes((unsigned char*)&buf, sizeof(int)); -+ return buf; - } - #endif - #endif diff --git a/gsoap-03-seqpoint.diff b/gsoap-03-seqpoint.diff new file mode 100644 index 0000000..1aac9d5 --- /dev/null +++ b/gsoap-03-seqpoint.diff @@ -0,0 +1,54 @@ +From: Jan Engelhardt +Date: 2016-01-28 19:19:57.092815111 +0100 + +In file included from stdsoap2_ssl.c:60:0: +stdsoap2_ssl.c: In function ‘soap_getgziphdr’: +stdsoap2.h:2347:128: warning: operation on ‘soap->bufidx’ may be undefined [-Wsequence-point] + # define soap_get1(soap) (((soap)->bufidx>=(soap)->buflen && soap_recv(soap)) ? EOF : (unsigned char)(soap)->buf[(soap)->bufidx++]) + ^ +stdsoap2_ssl.c:15576:14: note: in expansion of macro ‘soap_get1’ + { for (i = soap_get1(soap) | (soap_get1(soap) << 8); i; i--) + ^ + +--- + gsoap/stdsoap2.cpp | 2 -- + gsoap/stdsoap2.h | 3 +-- + 2 files changed, 1 insertion(+), 4 deletions(-) + +Index: gsoap-2.8.22/gsoap/stdsoap2.cpp +=================================================================== +--- gsoap-2.8.22.orig/gsoap/stdsoap2.cpp ++++ gsoap-2.8.22/gsoap/stdsoap2.cpp +@@ -1547,7 +1547,6 @@ soap_get0(struct soap *soap) + #endif + + /******************************************************************************/ +-#ifdef WITH_LEAN + #ifndef PALM_1 + soap_wchar + soap_get1(struct soap *soap) +@@ -1556,7 +1555,6 @@ soap_get1(struct soap *soap) + return (unsigned char)soap->buf[soap->bufidx++]; + } + #endif +-#endif + + /******************************************************************************/ + #ifndef PALM_1 +Index: gsoap-2.8.22/gsoap/stdsoap2.h +=================================================================== +--- gsoap-2.8.22.orig/gsoap/stdsoap2.h ++++ gsoap-2.8.22/gsoap/stdsoap2.h +@@ -2344,11 +2344,10 @@ extern SOAP_NMAC struct Namespace namesp + + #ifndef WITH_LEAN + # define soap_get0(soap) (((soap)->bufidx>=(soap)->buflen && soap_recv(soap)) ? EOF : (unsigned char)(soap)->buf[(soap)->bufidx]) +-# define soap_get1(soap) (((soap)->bufidx>=(soap)->buflen && soap_recv(soap)) ? EOF : (unsigned char)(soap)->buf[(soap)->bufidx++]) + #else + soap_wchar soap_get0(struct soap*); +-soap_wchar soap_get1(struct soap*); + #endif ++soap_wchar soap_get1(struct soap*); + + #define SOAP_XSTRINGIFY(s) SOAP_STRINGIFY(s) + #define SOAP_STRINGIFY(s) #s diff --git a/gsoap-allocator.diff b/gsoap-allocator.diff index 39560d8..462d19b 100644 --- a/gsoap-allocator.diff +++ b/gsoap-allocator.diff @@ -6,7 +6,7 @@ Index: gsoap-2.8.22/gsoap/stdsoap2.cpp =================================================================== --- gsoap-2.8.22.orig/gsoap/stdsoap2.cpp +++ gsoap-2.8.22/gsoap/stdsoap2.cpp -@@ -7256,7 +7256,13 @@ SOAP_FMAC1 +@@ -7254,7 +7254,13 @@ SOAP_FMAC1 struct soap* SOAP_FMAC2 soap_versioning(soap_new)(soap_mode imode, soap_mode omode) @@ -21,7 +21,7 @@ Index: gsoap-2.8.22/gsoap/stdsoap2.cpp if (soap) soap_versioning(soap_init)(soap, imode, omode); return soap; -@@ -8983,7 +8989,14 @@ SOAP_FMAC1 +@@ -8981,7 +8987,14 @@ SOAP_FMAC1 struct soap* SOAP_FMAC2 soap_copy(const struct soap *soap) diff --git a/gsoap.changes b/gsoap.changes index 5da39ee..74edc97 100644 --- a/gsoap.changes +++ b/gsoap.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Jan 28 19:06:05 UTC 2016 - jengelh@inai.de + +- add gsoap-00-builtsource.diff, gsoap-03-seqpoint.diff to fix + more compiler warnings + ------------------------------------------------------------------- Tue Jun 2 11:19:46 UTC 2015 - jengelh@inai.de diff --git a/gsoap.spec b/gsoap.spec index 2382515..bb683c2 100644 --- a/gsoap.spec +++ b/gsoap.spec @@ -1,7 +1,7 @@ # # spec file for package gsoap # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -29,10 +29,12 @@ Url: http://gsoap2.sf.net/ Source: gsoap-%version.tar.xz Source2: sanitize_source.sh Patch13: gsoap-automake1_13.diff +Patch0: gsoap-00-builtsource.diff Patch1: gsoap-01-sharedlibs.diff Patch2: gsoap-02-typepuns.diff -Patch3: gsoap-mindeflateratio.diff -Patch4: gsoap-allocator.diff +Patch3: gsoap-03-seqpoint.diff +Patch4: gsoap-mindeflateratio.diff +Patch5: gsoap-allocator.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: autoconf BuildRequires: automake @@ -93,8 +95,8 @@ symlinks for libgsoap. %prep %setup -q cmp gsoap/stdsoap2.cpp gsoap/stdsoap2.c -%patch -P 13 -P 1 -P 2 -P 3 -P 4 -p1 -cp gsoap/stdsoap2.cpp gsoap/stdsoap2.c +%patch -P 13 -P 0 -P 1 -P 2 -P 3 -P 4 -P 5 -p1 +ln -fs stdsoap2.cpp stdsoap2.c %build # Rebuild configure - fix that utterly long mktime test. From 8ace1c856c43a64c4ea955f78b1d7e490692ede1625125cc1cdeb4825da159b4 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Thu, 28 Jan 2016 19:29:50 +0000 Subject: [PATCH 2/8] moar patches OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/gsoap?expand=0&rev=46 --- gsoap-00-builtsource.diff | 1 + gsoap-02-typepuns.diff | 2 +- gsoap-03-seqpoint.diff | 1 + gsoap-allocator.diff | 2 ++ gsoap-mindeflateratio.diff | 1 + gsoap-no-tcpfastopen-fail.diff | 29 +++++++++++++++++ gsoap-reset-error-code.diff | 58 ++++++++++++++++++++++++++++++++++ gsoap.spec | 4 ++- 8 files changed, 96 insertions(+), 2 deletions(-) create mode 100644 gsoap-no-tcpfastopen-fail.diff create mode 100644 gsoap-reset-error-code.diff diff --git a/gsoap-00-builtsource.diff b/gsoap-00-builtsource.diff index ec317c8..ad3eeae 100644 --- a/gsoap-00-builtsource.diff +++ b/gsoap-00-builtsource.diff @@ -1,5 +1,6 @@ From: Jan Engelhardt Date: 2016-01-28 19:30:10.973606466 +0100 +References: http://sf.net/p/gsoap2/patches/156/ Every .c/.cpp file which is updated/created needs to be in BUILT_SOURCES. diff --git a/gsoap-02-typepuns.diff b/gsoap-02-typepuns.diff index 45803ea..a807506 100644 --- a/gsoap-02-typepuns.diff +++ b/gsoap-02-typepuns.diff @@ -1,4 +1,4 @@ -References: https://sourceforge.net/p/gsoap2/patches/124/attachment/gsoap-aliasing.patch +References: https://sf.net/p/gsoap2/patches/124/ --- gsoap/plugin/wsaapi.c | 2 +- diff --git a/gsoap-03-seqpoint.diff b/gsoap-03-seqpoint.diff index 1aac9d5..41d97b4 100644 --- a/gsoap-03-seqpoint.diff +++ b/gsoap-03-seqpoint.diff @@ -1,5 +1,6 @@ From: Jan Engelhardt Date: 2016-01-28 19:19:57.092815111 +0100 +References: http://sf.net/p/gsoap2/patches/157/ In file included from stdsoap2_ssl.c:60:0: stdsoap2_ssl.c: In function ‘soap_getgziphdr’: diff --git a/gsoap-allocator.diff b/gsoap-allocator.diff index 462d19b..d81c8cf 100644 --- a/gsoap-allocator.diff +++ b/gsoap-allocator.diff @@ -1,3 +1,5 @@ +References: http://sf.net/p/gsoap2/bugs/1007/ + --- gsoap/stdsoap2.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/gsoap-mindeflateratio.diff b/gsoap-mindeflateratio.diff index e4fe859..d9598cf 100644 --- a/gsoap-mindeflateratio.diff +++ b/gsoap-mindeflateratio.diff @@ -1,4 +1,5 @@ From: Jan Engelhardt +References: http://sf.net/p/gsoap2/patches/158/ gsoap has a weird "protection": if content is compressed too well, it is considered evil and dropped. diff --git a/gsoap-no-tcpfastopen-fail.diff b/gsoap-no-tcpfastopen-fail.diff new file mode 100644 index 0000000..e9f080b --- /dev/null +++ b/gsoap-no-tcpfastopen-fail.diff @@ -0,0 +1,29 @@ +From: Folkert van Heusden / Jan Engelhardt +References: http://sf.net/p/gsoap2/patches/159/ + +setsockopt TCP_FASTOPEN can fail with -ENOPROTOSUPPORT if the kernel +can't do it, and then all of gsoap aborts :( +Ignore return value, so that the zarafa-server still starts even +in the absence of TCP_FASTOPEN. + +--- + gsoap/stdsoap2.cpp | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +Index: gsoap-2.8.22/gsoap/stdsoap2.cpp +=================================================================== +--- gsoap-2.8.22.orig/gsoap/stdsoap2.cpp ++++ gsoap-2.8.22/gsoap/stdsoap2.cpp +@@ -5140,11 +5140,7 @@ soap_bind(struct soap *soap, const char + } + #endif + #ifdef TCP_FASTOPEN +- if (!(soap->omode & SOAP_IO_UDP) && setsockopt(soap->master, SOL_TCP, TCP_FASTOPEN, (char*)&set, sizeof(int))) +- { soap->errnum = soap_socket_errno(soap->master); +- soap_set_receiver_error(soap, tcp_error(soap), "setsockopt TCP_FASTOPEN failed in soap_bind()", SOAP_TCP_ERROR); +- return SOAP_INVALID_SOCKET; +- } ++ if (!(soap->omode & SOAP_IO_UDP)) setsockopt(soap->master, SOL_TCP, TCP_FASTOPEN, (char*)&set, sizeof(int)); + #endif + #endif + #endif diff --git a/gsoap-reset-error-code.diff b/gsoap-reset-error-code.diff new file mode 100644 index 0000000..0c613a6 --- /dev/null +++ b/gsoap-reset-error-code.diff @@ -0,0 +1,58 @@ +References: https://sf.net/p/gsoap2/bugs/1025/ + +--- + gsoap/stdsoap2.cpp | 6 ++++++ + 1 file changed, 6 insertions(+) + +Index: gsoap-2.8.22/gsoap/stdsoap2.cpp +=================================================================== +--- gsoap-2.8.22.orig/gsoap/stdsoap2.cpp ++++ gsoap-2.8.22/gsoap/stdsoap2.cpp +@@ -4074,6 +4074,7 @@ again: + #ifdef WITH_IPV6 + if (res->ai_next) + { res = res->ai_next; ++ soap->error = 0; + goto again; + } + #endif +@@ -4284,6 +4285,7 @@ again: + #ifdef WITH_IPV6 + if (err == SOAP_ECONNREFUSED && res->ai_next) + { soap->fclosesocket(soap, sk); ++ soap->error = 0; + res = res->ai_next; + goto again; + } +@@ -4309,6 +4311,7 @@ again: + #ifdef WITH_IPV6 + if (res->ai_next) + { res = res->ai_next; ++ soap->error = 0; + goto again; + } + freeaddrinfo(ressave); +@@ -4323,6 +4326,7 @@ again: + #ifdef WITH_IPV6 + if (res->ai_next) + { res = res->ai_next; ++ soap->error = 0; + goto again; + } + freeaddrinfo(ressave); +@@ -4341,6 +4345,7 @@ again: + #ifdef WITH_IPV6 + if (res->ai_next) + { res = res->ai_next; ++ soap->error = 0; + goto again; + } + freeaddrinfo(ressave); +@@ -4351,6 +4356,7 @@ again: + #ifdef WITH_IPV6 + if (res->ai_next) + { res = res->ai_next; ++ soap->error = 0; + soap->fclosesocket(soap, sk); + goto again; + } diff --git a/gsoap.spec b/gsoap.spec index bb683c2..74df443 100644 --- a/gsoap.spec +++ b/gsoap.spec @@ -35,6 +35,8 @@ Patch2: gsoap-02-typepuns.diff Patch3: gsoap-03-seqpoint.diff Patch4: gsoap-mindeflateratio.diff Patch5: gsoap-allocator.diff +Patch6: gsoap-no-tcpfastopen-fail.diff +Patch7: gsoap-reset-error-code.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: autoconf BuildRequires: automake @@ -95,7 +97,7 @@ symlinks for libgsoap. %prep %setup -q cmp gsoap/stdsoap2.cpp gsoap/stdsoap2.c -%patch -P 13 -P 0 -P 1 -P 2 -P 3 -P 4 -P 5 -p1 +%patch -P 13 -P 0 -P 1 -P 2 -P 3 -P 4 -P 5 -P 6 -P 7 -p1 ln -fs stdsoap2.cpp stdsoap2.c %build From fd30db509a0e80551bff64def0068ceb8763f7ff7b9819e73b6c7bac8e27ea13 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Thu, 28 Jan 2016 19:44:29 +0000 Subject: [PATCH 3/8] OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/gsoap?expand=0&rev=47 --- gsoap.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gsoap.spec b/gsoap.spec index 74df443..95a36d0 100644 --- a/gsoap.spec +++ b/gsoap.spec @@ -98,7 +98,7 @@ symlinks for libgsoap. %setup -q cmp gsoap/stdsoap2.cpp gsoap/stdsoap2.c %patch -P 13 -P 0 -P 1 -P 2 -P 3 -P 4 -P 5 -P 6 -P 7 -p1 -ln -fs stdsoap2.cpp stdsoap2.c +ln -fs stdsoap2.cpp gsoap/stdsoap2.c %build # Rebuild configure - fix that utterly long mktime test. From 307ba34bcd8e4d36fcbf1c3fdd34ea45ffbd8ca543329675652271a035670483 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Fri, 29 Jan 2016 00:45:39 +0000 Subject: [PATCH 4/8] OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/gsoap?expand=0&rev=48 --- gsoap-allocator.diff | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/gsoap-allocator.diff b/gsoap-allocator.diff index d81c8cf..5f9c781 100644 --- a/gsoap-allocator.diff +++ b/gsoap-allocator.diff @@ -1,8 +1,8 @@ References: http://sf.net/p/gsoap2/bugs/1007/ --- - gsoap/stdsoap2.cpp | 17 +++++++++++++++-- - 1 file changed, 15 insertions(+), 2 deletions(-) + gsoap/stdsoap2.cpp | 21 +++++++++++++++++++-- + 1 file changed, 19 insertions(+), 2 deletions(-) Index: gsoap-2.8.22/gsoap/stdsoap2.cpp =================================================================== @@ -23,7 +23,19 @@ Index: gsoap-2.8.22/gsoap/stdsoap2.cpp if (soap) soap_versioning(soap_init)(soap, imode, omode); return soap; -@@ -8981,7 +8987,14 @@ SOAP_FMAC1 +@@ -7268,7 +7274,11 @@ void + SOAP_FMAC2 + soap_free(struct soap *soap) + { soap_done(soap); ++#ifdef __cplusplus ++ SOAP_DELETE(soap); ++#else + free(soap); ++#endif + } + #endif + +@@ -8981,7 +8991,14 @@ SOAP_FMAC1 struct soap* SOAP_FMAC2 soap_copy(const struct soap *soap) From 68e76e74c4bf87f3d796fe0c8aaaf17175c076c30876332c936680b2540abba0 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Fri, 29 Jan 2016 00:50:12 +0000 Subject: [PATCH 5/8] OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/gsoap?expand=0&rev=49 --- gsoap-allocator.diff | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/gsoap-allocator.diff b/gsoap-allocator.diff index 5f9c781..769cd0a 100644 --- a/gsoap-allocator.diff +++ b/gsoap-allocator.diff @@ -1,8 +1,8 @@ References: http://sf.net/p/gsoap2/bugs/1007/ --- - gsoap/stdsoap2.cpp | 21 +++++++++++++++++++-- - 1 file changed, 19 insertions(+), 2 deletions(-) + gsoap/stdsoap2.cpp | 28 +++++++++++++++++++++++++--- + 1 file changed, 25 insertions(+), 3 deletions(-) Index: gsoap-2.8.22/gsoap/stdsoap2.cpp =================================================================== @@ -35,7 +35,21 @@ Index: gsoap-2.8.22/gsoap/stdsoap2.cpp } #endif -@@ -8981,7 +8991,14 @@ SOAP_FMAC1 +@@ -7278,7 +7288,12 @@ SOAP_FMAC1 + void + SOAP_FMAC2 + soap_del(struct soap *soap) +-{ free(soap); ++{ ++#ifdef __cplusplus ++ SOAP_DELETE(soap); ++#else ++ free(soap); ++#endif + } + #endif + +@@ -8981,7 +8996,14 @@ SOAP_FMAC1 struct soap* SOAP_FMAC2 soap_copy(const struct soap *soap) From c7083c71999e743018eb9b9dc121867cd3687302780c293afaa6b4287f59220f Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Wed, 3 Feb 2016 09:56:00 +0000 Subject: [PATCH 6/8] gsoap-2.8.28 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/gsoap?expand=0&rev=50 --- gsoap-00-builtsource.diff | 8 ++--- gsoap-01-sharedlibs.diff | 42 +++++++++++------------ gsoap-03-seqpoint.diff | 26 +++++++------- gsoap-2.8.22.tar.xz | 3 -- gsoap-2.8.28.tar.xz | 3 ++ gsoap-allocator.diff | 67 ------------------------------------- gsoap-reset-error-code.diff | 58 -------------------------------- gsoap.changes | 61 ++++++++++++++++++--------------- gsoap.spec | 28 +++++++--------- sanitize_source.sh | 4 +-- 10 files changed, 89 insertions(+), 211 deletions(-) delete mode 100644 gsoap-2.8.22.tar.xz create mode 100644 gsoap-2.8.28.tar.xz delete mode 100644 gsoap-allocator.diff delete mode 100644 gsoap-reset-error-code.diff diff --git a/gsoap-00-builtsource.diff b/gsoap-00-builtsource.diff index ad3eeae..9385c8d 100644 --- a/gsoap-00-builtsource.diff +++ b/gsoap-00-builtsource.diff @@ -9,13 +9,13 @@ BUILT_SOURCES. gsoap/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -Index: gsoap-2.8.22/gsoap/Makefile.am +Index: gsoap-2.8.28/gsoap/Makefile.am =================================================================== ---- gsoap-2.8.22.orig/gsoap/Makefile.am -+++ gsoap-2.8.22/gsoap/Makefile.am +--- gsoap-2.8.28.orig/gsoap/Makefile.am ++++ gsoap-2.8.28/gsoap/Makefile.am @@ -49,7 +49,7 @@ libgsoapssl_a_CFLAGS = $(SOAPCPP2_DEBUG) libgsoapssl___a_SOURCES = stdsoap2_ssl_cpp.cpp dom_cpp.cpp - libgsoapssl___a_CXXFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) $(WSDL2H_EXTRA_FLAGS) -DWITH_DOM + libgsoapssl___a_CXXFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) $(WSDL2H_EXTRA_FLAGS) -DWITH_DOM -DWITH_COOKIES -BUILT_SOURCES = stdsoap2_cpp.cpp dom_cpp.cpp $(lib_LIBRARIES) +BUILT_SOURCES = stdsoap2_ck.c stdsoap2_cpp.cpp stdsoap2_ck_cpp.cpp stdsoap2_ssl.c stdsoap2_ssl_cpp.cpp dom.cpp diff --git a/gsoap-01-sharedlibs.diff b/gsoap-01-sharedlibs.diff index 99deba1..8a09bc1 100644 --- a/gsoap-01-sharedlibs.diff +++ b/gsoap-01-sharedlibs.diff @@ -10,10 +10,10 @@ build: always use shared libraries gsoap/samples/databinding/Makefile.am | 2 +- 4 files changed, 28 insertions(+), 20 deletions(-) -Index: gsoap-2.8.22/configure.ac +Index: gsoap-2.8.28/configure.ac =================================================================== ---- gsoap-2.8.22.orig/configure.ac -+++ gsoap-2.8.22/configure.ac +--- gsoap-2.8.28.orig/configure.ac ++++ gsoap-2.8.28/configure.ac @@ -15,8 +15,8 @@ AM_PROG_CC_C_O AM_PROG_LEX AC_PROG_YACC @@ -52,10 +52,10 @@ Index: gsoap-2.8.22/configure.ac fi AC_SUBST(WSDL2H_EXTRA_FLAGS) AC_SUBST(WSDL2H_EXTRA_LIBS) -Index: gsoap-2.8.22/gsoap/Makefile.am +Index: gsoap-2.8.28/gsoap/Makefile.am =================================================================== ---- gsoap-2.8.22.orig/gsoap/Makefile.am -+++ gsoap-2.8.22/gsoap/Makefile.am +--- gsoap-2.8.28.orig/gsoap/Makefile.am ++++ gsoap-2.8.28/gsoap/Makefile.am @@ -34,20 +34,28 @@ stdsoap2_ssl_cpp.cpp: stdsoap2.cpp dom_cpp.cpp: dom.cpp $(LN_S) -f $(srcdir)/dom.cpp dom_cpp.cpp @@ -72,36 +72,36 @@ Index: gsoap-2.8.22/gsoap/Makefile.am -libgsoapck___a_SOURCES = stdsoap2_ck_cpp.cpp dom_cpp.cpp -libgsoapck___a_CXXFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) -DWITH_COOKIES -libgsoapssl_a_SOURCES = stdsoap2_ssl.c dom.c --libgsoapssl_a_CFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) $(WSDL2H_EXTRA_FLAGS) -DWITH_DOM +-libgsoapssl_a_CFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) $(WSDL2H_EXTRA_FLAGS) -DWITH_DOM -DWITH_COOKIES -libgsoapssl___a_SOURCES = stdsoap2_ssl_cpp.cpp dom_cpp.cpp --libgsoapssl___a_CXXFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) $(WSDL2H_EXTRA_FLAGS) -DWITH_DOM +-libgsoapssl___a_CXXFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) $(WSDL2H_EXTRA_FLAGS) -DWITH_DOM -DWITH_COOKIES +libgsoap_la_SOURCES = stdsoap2.c dom.c +libgsoap_la_CFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) -+libgsoap_la_LDFLAGS = -release ${PACKAGE_VERSION} +libgsoap___la_SOURCES = stdsoap2_cpp.cpp dom_cpp.cpp +libgsoap___la_CXXFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) -+libgsoap___la_LDFLAGS = ${libgsoap_la_LDFLAGS} +libgsoapck_la_SOURCES = stdsoap2_ck.c dom.c +libgsoapck_la_CFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) -DWITH_COOKIES -+libgsoapck_la_LDFLAGS = ${libgsoap_la_LDFLAGS} +libgsoapck___la_SOURCES = stdsoap2_ck_cpp.cpp dom_cpp.cpp +libgsoapck___la_CXXFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) -DWITH_COOKIES -+libgsoapck___la_LDFLAGS = ${libgsoap_la_LDFLAGS} +libgsoapssl_la_SOURCES = stdsoap2_ssl.c dom.c -+libgsoapssl_la_CFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) $(WSDL2H_EXTRA_FLAGS) -DWITH_DOM ++libgsoapssl_la_CFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) $(WSDL2H_EXTRA_FLAGS) -DWITH_DOM -DWITH_COOKIES ++libgsoapssl___la_SOURCES = stdsoap2_ssl_cpp.cpp dom_cpp.cpp ++libgsoapssl___la_CXXFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) $(WSDL2H_EXTRA_FLAGS) -DWITH_DOM -DWITH_COOKIES ++libgsoap_la_LDFLAGS = -release ${PACKAGE_VERSION} ++libgsoap___la_LDFLAGS = ${libgsoap_la_LDFLAGS} ++libgsoapck_la_LDFLAGS = ${libgsoap_la_LDFLAGS} ++libgsoapck___la_LDFLAGS = ${libgsoap_la_LDFLAGS} +libgsoapssl_la_LDFLAGS = ${libgsoap_la_LDFLAGS} +libgsoapssl_la_LIBADD = ${SAMPLE_SSL_LIBS} -+libgsoapssl___la_SOURCES = stdsoap2_ssl_cpp.cpp dom_cpp.cpp -+libgsoapssl___la_CXXFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) $(WSDL2H_EXTRA_FLAGS) -DWITH_DOM +libgsoapssl___la_LDFLAGS = ${libgsoap_la_LDFLAGS} +libgsoapssl___la_LIBADD = ${SAMPLE_SSL_LIBS} BUILT_SOURCES = stdsoap2_ck.c stdsoap2_cpp.cpp stdsoap2_ck_cpp.cpp stdsoap2_ssl.c stdsoap2_ssl_cpp.cpp dom.cpp -Index: gsoap-2.8.22/gsoap/samples/autotest/Makefile.am +Index: gsoap-2.8.28/gsoap/samples/autotest/Makefile.am =================================================================== ---- gsoap-2.8.22.orig/gsoap/samples/autotest/Makefile.am -+++ gsoap-2.8.22/gsoap/samples/autotest/Makefile.am +--- gsoap-2.8.28.orig/gsoap/samples/autotest/Makefile.am ++++ gsoap-2.8.28/gsoap/samples/autotest/Makefile.am @@ -14,7 +14,7 @@ SOAP_FLAGS=-SL -T -I$(top_srcdir)/gsoap/ WSDLINPUT=$(srcdir)/examples.wsdl SOAPHEADER=$(srcdir)/examples.h @@ -111,10 +111,10 @@ Index: gsoap-2.8.22/gsoap/samples/autotest/Makefile.am $(SOAP_CPP_SRC) : $(WSDLINPUT) $(WSDL) $(WSDL_FLAGS) $(WSDLINPUT) -Index: gsoap-2.8.22/gsoap/samples/databinding/Makefile.am +Index: gsoap-2.8.28/gsoap/samples/databinding/Makefile.am =================================================================== ---- gsoap-2.8.22.orig/gsoap/samples/databinding/Makefile.am -+++ gsoap-2.8.22/gsoap/samples/databinding/Makefile.am +--- gsoap-2.8.28.orig/gsoap/samples/databinding/Makefile.am ++++ gsoap-2.8.28/gsoap/samples/databinding/Makefile.am @@ -14,7 +14,7 @@ SOAP_FLAGS=-0 -CS -p address -I$(top_src WSDLINPUT=$(srcdir)/address.xsd SOAPHEADER=$(srcdir)/address.h diff --git a/gsoap-03-seqpoint.diff b/gsoap-03-seqpoint.diff index 41d97b4..f03ceab 100644 --- a/gsoap-03-seqpoint.diff +++ b/gsoap-03-seqpoint.diff @@ -16,31 +16,31 @@ stdsoap2_ssl.c:15576:14: note: in expansion of macro ‘soap_get1’ gsoap/stdsoap2.h | 3 +-- 2 files changed, 1 insertion(+), 4 deletions(-) -Index: gsoap-2.8.22/gsoap/stdsoap2.cpp +Index: gsoap-2.8.28/gsoap/stdsoap2.cpp =================================================================== ---- gsoap-2.8.22.orig/gsoap/stdsoap2.cpp -+++ gsoap-2.8.22/gsoap/stdsoap2.cpp -@@ -1547,7 +1547,6 @@ soap_get0(struct soap *soap) - #endif +--- gsoap-2.8.28.orig/gsoap/stdsoap2.cpp ++++ gsoap-2.8.28/gsoap/stdsoap2.cpp +@@ -1591,7 +1591,6 @@ soap_get0(struct soap *soap) /******************************************************************************/ + -#ifdef WITH_LEAN #ifndef PALM_1 soap_wchar soap_get1(struct soap *soap) -@@ -1556,7 +1555,6 @@ soap_get1(struct soap *soap) +@@ -1600,7 +1599,6 @@ soap_get1(struct soap *soap) return (unsigned char)soap->buf[soap->bufidx++]; } #endif -#endif /******************************************************************************/ - #ifndef PALM_1 -Index: gsoap-2.8.22/gsoap/stdsoap2.h + +Index: gsoap-2.8.28/gsoap/stdsoap2.h =================================================================== ---- gsoap-2.8.22.orig/gsoap/stdsoap2.h -+++ gsoap-2.8.22/gsoap/stdsoap2.h -@@ -2344,11 +2344,10 @@ extern SOAP_NMAC struct Namespace namesp +--- gsoap-2.8.28.orig/gsoap/stdsoap2.h ++++ gsoap-2.8.28/gsoap/stdsoap2.h +@@ -2788,11 +2788,10 @@ extern SOAP_NMAC struct Namespace namesp #ifndef WITH_LEAN # define soap_get0(soap) (((soap)->bufidx>=(soap)->buflen && soap_recv(soap)) ? EOF : (unsigned char)(soap)->buf[(soap)->bufidx]) @@ -51,5 +51,5 @@ Index: gsoap-2.8.22/gsoap/stdsoap2.h #endif +soap_wchar soap_get1(struct soap*); - #define SOAP_XSTRINGIFY(s) SOAP_STRINGIFY(s) - #define SOAP_STRINGIFY(s) #s + #define soap_versioning_paste(name, ext) name##_REQUIRE_lib_v##ext + #define soap_versioning_ext(name, ext) soap_versioning_paste(name, ext) diff --git a/gsoap-2.8.22.tar.xz b/gsoap-2.8.22.tar.xz deleted file mode 100644 index 647d337..0000000 --- a/gsoap-2.8.22.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7eeffcda67a1de66ed8b91833cce7d1648c0e9a13f947b4a051c4837e3d2fb5a -size 6722668 diff --git a/gsoap-2.8.28.tar.xz b/gsoap-2.8.28.tar.xz new file mode 100644 index 0000000..f03cfc4 --- /dev/null +++ b/gsoap-2.8.28.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96f5730f2f1104925666f13137b531364b3412bcec28cfd42cfbde999ab668a9 +size 8006356 diff --git a/gsoap-allocator.diff b/gsoap-allocator.diff deleted file mode 100644 index 769cd0a..0000000 --- a/gsoap-allocator.diff +++ /dev/null @@ -1,67 +0,0 @@ -References: http://sf.net/p/gsoap2/bugs/1007/ - ---- - gsoap/stdsoap2.cpp | 28 +++++++++++++++++++++++++--- - 1 file changed, 25 insertions(+), 3 deletions(-) - -Index: gsoap-2.8.22/gsoap/stdsoap2.cpp -=================================================================== ---- gsoap-2.8.22.orig/gsoap/stdsoap2.cpp -+++ gsoap-2.8.22/gsoap/stdsoap2.cpp -@@ -7254,7 +7254,13 @@ SOAP_FMAC1 - struct soap* - SOAP_FMAC2 - soap_versioning(soap_new)(soap_mode imode, soap_mode omode) --{ struct soap *soap = (struct soap*)malloc(sizeof(struct soap)); -+{ -+#ifdef __cplusplus -+ struct soap *soap = new struct soap; -+#else -+ struct soap *soap = malloc(sizeof(struct soap)); -+ soap->dummy = NULL; -+#endif - if (soap) - soap_versioning(soap_init)(soap, imode, omode); - return soap; -@@ -7268,7 +7274,11 @@ void - SOAP_FMAC2 - soap_free(struct soap *soap) - { soap_done(soap); -+#ifdef __cplusplus -+ SOAP_DELETE(soap); -+#else - free(soap); -+#endif - } - #endif - -@@ -7278,7 +7288,12 @@ SOAP_FMAC1 - void - SOAP_FMAC2 - soap_del(struct soap *soap) --{ free(soap); -+{ -+#ifdef __cplusplus -+ SOAP_DELETE(soap); -+#else -+ free(soap); -+#endif - } - #endif - -@@ -8981,7 +8996,14 @@ SOAP_FMAC1 - struct soap* - SOAP_FMAC2 - soap_copy(const struct soap *soap) --{ return soap_copy_context((struct soap*)malloc(sizeof(struct soap)), soap); -+{ -+#ifdef __cplusplus -+ return soap_copy_context(new struct soap, soap); -+#else -+ struct soap *s = malloc(sizeof(struct soap)); -+ s->dummy = NULL; -+ return soap_copy_context(s, soap); -+#endif - } - #endif - diff --git a/gsoap-reset-error-code.diff b/gsoap-reset-error-code.diff deleted file mode 100644 index 0c613a6..0000000 --- a/gsoap-reset-error-code.diff +++ /dev/null @@ -1,58 +0,0 @@ -References: https://sf.net/p/gsoap2/bugs/1025/ - ---- - gsoap/stdsoap2.cpp | 6 ++++++ - 1 file changed, 6 insertions(+) - -Index: gsoap-2.8.22/gsoap/stdsoap2.cpp -=================================================================== ---- gsoap-2.8.22.orig/gsoap/stdsoap2.cpp -+++ gsoap-2.8.22/gsoap/stdsoap2.cpp -@@ -4074,6 +4074,7 @@ again: - #ifdef WITH_IPV6 - if (res->ai_next) - { res = res->ai_next; -+ soap->error = 0; - goto again; - } - #endif -@@ -4284,6 +4285,7 @@ again: - #ifdef WITH_IPV6 - if (err == SOAP_ECONNREFUSED && res->ai_next) - { soap->fclosesocket(soap, sk); -+ soap->error = 0; - res = res->ai_next; - goto again; - } -@@ -4309,6 +4311,7 @@ again: - #ifdef WITH_IPV6 - if (res->ai_next) - { res = res->ai_next; -+ soap->error = 0; - goto again; - } - freeaddrinfo(ressave); -@@ -4323,6 +4326,7 @@ again: - #ifdef WITH_IPV6 - if (res->ai_next) - { res = res->ai_next; -+ soap->error = 0; - goto again; - } - freeaddrinfo(ressave); -@@ -4341,6 +4345,7 @@ again: - #ifdef WITH_IPV6 - if (res->ai_next) - { res = res->ai_next; -+ soap->error = 0; - goto again; - } - freeaddrinfo(ressave); -@@ -4351,6 +4356,7 @@ again: - #ifdef WITH_IPV6 - if (res->ai_next) - { res = res->ai_next; -+ soap->error = 0; - soap->fclosesocket(soap, sk); - goto again; - } diff --git a/gsoap.changes b/gsoap.changes index 74edc97..5163344 100644 --- a/gsoap.changes +++ b/gsoap.changes @@ -1,31 +1,39 @@ ------------------------------------------------------------------- -Thu Jan 28 19:06:05 UTC 2016 - jengelh@inai.de +Wed Feb 3 09:07:07 UTC 2016 - jengelh@inai.de -- add gsoap-00-builtsource.diff, gsoap-03-seqpoint.diff to fix - more compiler warnings - -------------------------------------------------------------------- -Tue Jun 2 11:19:46 UTC 2015 - jengelh@inai.de - -- Replace gsoap-02-typepuns.diff with better version from SF -- Add gsoap-allocator.diff to please UBSAN - -------------------------------------------------------------------- -Thu May 28 17:31:39 UTC 2015 - jengelh@inai.de - -- Drop unnecessary -version-info argument from _LDFLAGS variable - in gsoap-01-sharedlibs.diff (we have -release) - -------------------------------------------------------------------- -Thu Apr 23 11:45:28 UTC 2015 - jengelh@inai.de - -- Update to new upstream release 2.8.22 -* Enhancements include XSD 1.1 support and improved portability. - -------------------------------------------------------------------- -Thu Apr 23 10:59:00 UTC 2015 - jengelh@inai.de - -- Include SSL libraries in the link to reduce undefined symbols +- Update to new upstream release 2.8.28 +* Added many new API functions to a fully redisigned XML DOM API + v5 for C and C++ with new DOM API documentation. The redesigned + DOM API v5 is mostly backward compatible to DOM API v4, but + with DOM string data members changed to text members. Many API + functions are added to define a clean interface without having + to use the DOM structure data members. The + soap_dom_next_element() function now takes a second parameter + that is an element pointer to stop deep traversal at (use NULL + for old behavior). See updated XML DOM and XPath documentation + for details. +* Added C serialization to/from strings with new C soap struct + members const char *soap::is input string to parse from and + const char **soap:os pointer to string that is set by the + engine to point to the output. Note that C++ code is unchanged + and the soap::is and soap::os are still members pointers to + istream and ostream streams (use std::stringstream for + input/output from/to strings). +* Added JSON API C function set_size to set/change array sizes + and JSON API C function set_struct to create an empty JSON + object. +* Improved jsoncpp command line tool to generate JSONPath C code + and improved overall to generate more compact code. +* Improved SOAP_DEFAULTNS flag to emit XML default namespace + declarations. +* Improved strictness of XML verification under default settings + (i.e. without requiring SOAP_XML_STRICT). +* Changed string deserialization when XML content with tags is + encountered: XML tags are no longer parsed as part of strings. + You must use XML string type to parse literal XML content or + use DOM. +- Remove gsoap-allocator.diff, gsoap-reset-error-code.diff + (merged upstream) ------------------------------------------------------------------- Thu Jan 15 18:34:35 UTC 2015 - jengelh@inai.de @@ -44,7 +52,6 @@ Thu Jan 15 18:34:35 UTC 2015 - jengelh@inai.de UTF8 content that is outside the allowed range of XML 1.0. - Remove gsoap-05-ipv6.diff, gsoap-06-ipv6retry.diff (merged upstream) -- Add gsoap-mindeflateratio.diff ------------------------------------------------------------------- Sun Aug 3 23:16:48 UTC 2014 - jengelh@inai.de diff --git a/gsoap.spec b/gsoap.spec index 95a36d0..6a7f972 100644 --- a/gsoap.spec +++ b/gsoap.spec @@ -18,7 +18,7 @@ Name: gsoap %define lname libgsoap-2_8 -Version: 2.8.22 +Version: 2.8.28 Release: 0 Summary: Toolkit for C/C++ server and client web service applications License: SUSE-GPL-2.0+-with-openssl-exception @@ -34,9 +34,7 @@ Patch1: gsoap-01-sharedlibs.diff Patch2: gsoap-02-typepuns.diff Patch3: gsoap-03-seqpoint.diff Patch4: gsoap-mindeflateratio.diff -Patch5: gsoap-allocator.diff Patch6: gsoap-no-tcpfastopen-fail.diff -Patch7: gsoap-reset-error-code.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: autoconf BuildRequires: automake @@ -45,7 +43,6 @@ BuildRequires: flex BuildRequires: gcc-c++ BuildRequires: libtool BuildRequires: pkg-config -BuildRequires: xz BuildRequires: pkgconfig(gnutls) BuildRequires: pkgconfig(libcrypto) BuildRequires: pkgconfig(libssl) @@ -97,36 +94,35 @@ symlinks for libgsoap. %prep %setup -q cmp gsoap/stdsoap2.cpp gsoap/stdsoap2.c -%patch -P 13 -P 0 -P 1 -P 2 -P 3 -P 4 -P 5 -P 6 -P 7 -p1 +%patch -P 13 -P 0 -P 1 -P 2 -P 3 -P 4 -P 6 -p1 ln -fs stdsoap2.cpp gsoap/stdsoap2.c %build # Rebuild configure - fix that utterly long mktime test. -autoreconf -fi; +autoreconf -fi %configure --enable-ipv6 --disable-static -pushd gsoap/src/; +pushd gsoap/src/ # build prerequisites for parallel build first -make soapcpp2_yacc.c; -popd; -make %{?_smp_mflags}; +make soapcpp2_yacc.c +popd +make %{?_smp_mflags} %install -b="%buildroot"; -make install DESTDIR="$b"; -rm -f "$b/%_libdir"/*.la; +b="%buildroot" +make install DESTDIR="$b" +rm -f "$b/%_libdir"/*.la %if 0%{?fdupes:1} %fdupes %buildroot %endif -%post -n %lname -p /sbin/ldconfig - +%post -n %lname -p /sbin/ldconfig %postun -n %lname -p /sbin/ldconfig %files devel %defattr(-,root,root) %_bindir/* -%_datadir/%name +%_datadir/%name/ %files -n %lname %defattr(-,root,root) diff --git a/sanitize_source.sh b/sanitize_source.sh index 3ec6157..9e2ab14 100644 --- a/sanitize_source.sh +++ b/sanitize_source.sh @@ -1,4 +1,4 @@ -#!/bin/sh -x +#!/bin/sh -ex # # Shrink the gsoap archive from 20 MB -> 6 MB. # @@ -13,7 +13,7 @@ if ! which hardlink >/dev/null; then exit 1; fi; -version="2.8.22"; +version="2.8.28"; shortver="2.8"; # agh... rm -Rf "gsoap-$shortver" "gsoap-$version"; From 4696a925702172a159d7b7fdcc002c48b8134cd7bc80bef89cb7d5616433278a Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Wed, 3 Feb 2016 17:27:22 +0000 Subject: [PATCH 7/8] avoid continued unspecified evaluation order in seqpoint.diff OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/gsoap?expand=0&rev=51 --- gsoap-03-seqpoint.diff | 50 +++++++++++--------------------------- gsoap-mindeflateratio.diff | 8 +++--- 2 files changed, 18 insertions(+), 40 deletions(-) diff --git a/gsoap-03-seqpoint.diff b/gsoap-03-seqpoint.diff index f03ceab..c8c4095 100644 --- a/gsoap-03-seqpoint.diff +++ b/gsoap-03-seqpoint.diff @@ -12,44 +12,22 @@ stdsoap2_ssl.c:15576:14: note: in expansion of macro ‘soap_get1’ ^ --- - gsoap/stdsoap2.cpp | 2 -- - gsoap/stdsoap2.h | 3 +-- - 2 files changed, 1 insertion(+), 4 deletions(-) + gsoap/stdsoap2.cpp | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) Index: gsoap-2.8.28/gsoap/stdsoap2.cpp =================================================================== --- gsoap-2.8.28.orig/gsoap/stdsoap2.cpp +++ gsoap-2.8.28/gsoap/stdsoap2.cpp -@@ -1591,7 +1591,6 @@ soap_get0(struct soap *soap) - - /******************************************************************************/ - --#ifdef WITH_LEAN - #ifndef PALM_1 - soap_wchar - soap_get1(struct soap *soap) -@@ -1600,7 +1599,6 @@ soap_get1(struct soap *soap) - return (unsigned char)soap->buf[soap->bufidx++]; - } - #endif --#endif - - /******************************************************************************/ - -Index: gsoap-2.8.28/gsoap/stdsoap2.h -=================================================================== ---- gsoap-2.8.28.orig/gsoap/stdsoap2.h -+++ gsoap-2.8.28/gsoap/stdsoap2.h -@@ -2788,11 +2788,10 @@ extern SOAP_NMAC struct Namespace namesp - - #ifndef WITH_LEAN - # define soap_get0(soap) (((soap)->bufidx>=(soap)->buflen && soap_recv(soap)) ? EOF : (unsigned char)(soap)->buf[(soap)->bufidx]) --# define soap_get1(soap) (((soap)->bufidx>=(soap)->buflen && soap_recv(soap)) ? EOF : (unsigned char)(soap)->buf[(soap)->bufidx++]) - #else - soap_wchar soap_get0(struct soap*); --soap_wchar soap_get1(struct soap*); - #endif -+soap_wchar soap_get1(struct soap*); - - #define soap_versioning_paste(name, ext) name##_REQUIRE_lib_v##ext - #define soap_versioning_ext(name, ext) soap_versioning_paste(name, ext) +@@ -16408,7 +16408,10 @@ soap_getgziphdr(struct soap *soap) + f = c; + } + if (f & 0x04) /* FEXTRA */ +- { for (i = soap_get1(soap) | (soap_get1(soap) << 8); i; i--) ++ { ++ int i = soap_get1(soap); ++ i |= soap_get1(soap) << 8; ++ while (i-- > 0) + { if ((int)soap_get1(soap) == EOF) + return soap->error = SOAP_ZLIB_ERROR; + } diff --git a/gsoap-mindeflateratio.diff b/gsoap-mindeflateratio.diff index d9598cf..465d5d0 100644 --- a/gsoap-mindeflateratio.diff +++ b/gsoap-mindeflateratio.diff @@ -12,11 +12,11 @@ However, the comment above explicitly says the minimum is gsoap/stdsoap2.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -Index: gsoap-2.8.22/gsoap/stdsoap2.h +Index: gsoap-2.8.28/gsoap/stdsoap2.h =================================================================== ---- gsoap-2.8.22.orig/gsoap/stdsoap2.h -+++ gsoap-2.8.22/gsoap/stdsoap2.h -@@ -1159,7 +1159,7 @@ extern "C" { +--- gsoap-2.8.28.orig/gsoap/stdsoap2.h ++++ gsoap-2.8.28/gsoap/stdsoap2.h +@@ -1212,7 +1212,7 @@ extern "C" { to the limit of 1032:1. */ #ifndef SOAP_MINDEFLATERATIO From 7bdafeb4987233b6080ab6b1c839b306a0d3af2317b3e002f1b6932e82bcd65b Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Wed, 10 Feb 2016 18:21:03 +0000 Subject: [PATCH 8/8] where did the changelog go?! OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/gsoap?expand=0&rev=52 --- gsoap.changes | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gsoap.changes b/gsoap.changes index 5163344..39fad51 100644 --- a/gsoap.changes +++ b/gsoap.changes @@ -34,6 +34,31 @@ Wed Feb 3 09:07:07 UTC 2016 - jengelh@inai.de use DOM. - Remove gsoap-allocator.diff, gsoap-reset-error-code.diff (merged upstream) +- Add gsoap-00-builtsource.diff, gsoap-03-seqpoint.diff, + gsoap-no-tcpfastopen-fail.diff + +------------------------------------------------------------------- +Tue Jun 2 11:19:46 UTC 2015 - jengelh@inai.de + +- Replace gsoap-02-typepuns.diff with better version from SF +- Add gsoap-allocator.diff to please UBSAN + +------------------------------------------------------------------- +Thu May 28 17:31:39 UTC 2015 - jengelh@inai.de + +- Drop unnecessary -version-info argument from _LDFLAGS variable + in gsoap-01-sharedlibs.diff (we have -release) + +------------------------------------------------------------------- +Thu Apr 23 11:45:28 UTC 2015 - jengelh@inai.de + +- Update to new upstream release 2.8.22 +* Enhancements include XSD 1.1 support and improved portability. + +------------------------------------------------------------------- +Thu Apr 23 10:59:00 UTC 2015 - jengelh@inai.de + +- Include SSL libraries in the link to reduce undefined symbols ------------------------------------------------------------------- Thu Jan 15 18:34:35 UTC 2015 - jengelh@inai.de