From dfa7ea86d0386e14b9c16f230c6d134e69b82f6e862fabb20810bc1c451b1614 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Tue, 24 Jan 2017 14:45:05 +0000 Subject: [PATCH] enable symbol versioning OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/gsoap?expand=0&rev=84 --- gsoap-01-sharedlibs.diff | 112 ++++++++++++++++++++++++++++++--------- gsoap-02-implicit.diff | 26 +++++++++ gsoap.changes | 1 + gsoap.spec | 3 +- 4 files changed, 115 insertions(+), 27 deletions(-) create mode 100644 gsoap-02-implicit.diff diff --git a/gsoap-01-sharedlibs.diff b/gsoap-01-sharedlibs.diff index 7665c27..f69bd32 100644 --- a/gsoap-01-sharedlibs.diff +++ b/gsoap-01-sharedlibs.diff @@ -4,16 +4,24 @@ Date: 2011-07-01 17:19:00 +0200 build: always use shared libraries --- - configure.ac | 10 +++++----- - gsoap/Makefile.am | 34 +++++++++++++++++++++------------- - gsoap/samples/autotest/Makefile.am | 2 +- - gsoap/samples/databinding/Makefile.am | 2 +- - 4 files changed, 28 insertions(+), 20 deletions(-) + configure.ac | 10 ++++---- + gsoap/Makefile.am | 38 ++++++++++++++++++++++------------ + gsoap/gsoap++.sym | 1 + gsoap/gsoap.sym | 1 + gsoap/gsoapck++.sym | 1 + gsoap/gsoapck.sym | 1 + gsoap/gsoapckssl++.sym | 1 + gsoap/gsoapckssl.sym | 1 + gsoap/gsoapssl++.sym | 1 + gsoap/gsoapssl.sym | 1 + gsoap/samples/autotest/Makefile.am | 2 - + gsoap/samples/databinding/Makefile.am | 2 - + 12 files changed, 40 insertions(+), 20 deletions(-) -Index: gsoap-2.8.36/configure.ac +Index: gsoap-2.8.42/configure.ac =================================================================== ---- gsoap-2.8.36.orig/configure.ac -+++ gsoap-2.8.36/configure.ac +--- gsoap-2.8.42.orig/configure.ac ++++ gsoap-2.8.42/configure.ac @@ -15,8 +15,8 @@ AM_PROG_CC_C_O AM_PROG_LEX AC_PROG_YACC @@ -52,11 +60,11 @@ Index: gsoap-2.8.36/configure.ac fi AC_SUBST(WSDL2H_EXTRA_FLAGS) AC_SUBST(WSDL2H_EXTRA_LIBS) -Index: gsoap-2.8.36/gsoap/Makefile.am +Index: gsoap-2.8.42/gsoap/Makefile.am =================================================================== ---- gsoap-2.8.36.orig/gsoap/Makefile.am -+++ gsoap-2.8.36/gsoap/Makefile.am -@@ -34,20 +34,28 @@ stdsoap2_ssl_cpp.cpp: stdsoap2.cpp +--- gsoap-2.8.42.orig/gsoap/Makefile.am ++++ gsoap-2.8.42/gsoap/Makefile.am +@@ -34,20 +34,32 @@ stdsoap2_ssl_cpp.cpp: stdsoap2.cpp dom_cpp.cpp: dom.cpp $(LN_S) -f $(srcdir)/dom.cpp dom_cpp.cpp @@ -77,31 +85,83 @@ Index: gsoap-2.8.36/gsoap/Makefile.am -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} -Wl,--version-script=gsoap.sym ++EXTRA_libgsoap_la_DEPENDENCIES = gsoap.sym +libgsoap___la_SOURCES = stdsoap2_cpp.cpp dom_cpp.cpp +libgsoap___la_CXXFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) ++libgsoap___la_LDFLAGS = -release ${PACKAGE_VERSION} -Wl,--version-script=gsoap++.sym ++EXTRA_libgsoap___la_DEPENDENCIES = gsoap++.sym +libgsoapck_la_SOURCES = stdsoap2_ck.c dom.c +libgsoapck_la_CFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) -DWITH_COOKIES ++libgsoapck_la_LDFLAGS = -release ${PACKAGE_VERSION} -Wl,--version-script=gsoapck.sym ++EXTRA_libgsoapck_la_DEPENDENCIES = gsoapck.sym +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 = -release ${PACKAGE_VERSION} -Wl,--version-script=gsoapck++.sym ++EXTRA_libgsoapck___la_DEPENDENCIES = gsoapck++.sym +libgsoapssl_la_SOURCES = stdsoap2_ssl.c dom.c +libgsoapssl_la_CFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) $(WSDL2H_EXTRA_FLAGS) -DWITH_DOM -DWITH_COOKIES ++libgsoapssl_la_LDFLAGS = -release ${PACKAGE_VERSION} -Wl,--version-script=gsoapssl.sym ++EXTRA_libgsoapssl_la_DEPENDENCIES = gsoapssl.sym +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_LDFLAGS = ${libgsoap_la_LDFLAGS} -+libgsoapssl___la_LIBADD = ${SAMPLE_SSL_LIBS} ++libgsoapssl___la_LDFLAGS = -release ${PACKAGE_VERSION} -Wl,--version-script=gsoapssl++.sym ++EXTRA_libgsoapssl___la_DEPENDENCIES = gsoapssl++.sym BUILT_SOURCES = stdsoap2_cpp.cpp dom_cpp.cpp stdsoap2_ck.c stdsoap2_ck_cpp.cpp stdsoap2_ssl.c stdsoap2_ssl_cpp.cpp -Index: gsoap-2.8.36/gsoap/samples/autotest/Makefile.am +Index: gsoap-2.8.42/gsoap/gsoap++.sym =================================================================== ---- gsoap-2.8.36.orig/gsoap/samples/autotest/Makefile.am -+++ gsoap-2.8.36/gsoap/samples/autotest/Makefile.am +--- /dev/null ++++ gsoap-2.8.42/gsoap/gsoap++.sym +@@ -0,0 +1 @@ ++"GSOAP++" { global: *; }; +Index: gsoap-2.8.42/gsoap/gsoap.sym +=================================================================== +--- /dev/null ++++ gsoap-2.8.42/gsoap/gsoap.sym +@@ -0,0 +1 @@ ++GSOAP { global: *; }; +Index: gsoap-2.8.42/gsoap/gsoapck++.sym +=================================================================== +--- /dev/null ++++ gsoap-2.8.42/gsoap/gsoapck++.sym +@@ -0,0 +1 @@ ++"GSOAPCK++" { global: *; }; +Index: gsoap-2.8.42/gsoap/gsoapck.sym +=================================================================== +--- /dev/null ++++ gsoap-2.8.42/gsoap/gsoapck.sym +@@ -0,0 +1 @@ ++GSOAPCK { global: *; }; +Index: gsoap-2.8.42/gsoap/gsoapckssl++.sym +=================================================================== +--- /dev/null ++++ gsoap-2.8.42/gsoap/gsoapckssl++.sym +@@ -0,0 +1 @@ ++"GSOAPCKSSL++" { global: *; }; +Index: gsoap-2.8.42/gsoap/gsoapckssl.sym +=================================================================== +--- /dev/null ++++ gsoap-2.8.42/gsoap/gsoapckssl.sym +@@ -0,0 +1 @@ ++GSOAPCKSSL { global: *; }; +Index: gsoap-2.8.42/gsoap/gsoapssl++.sym +=================================================================== +--- /dev/null ++++ gsoap-2.8.42/gsoap/gsoapssl++.sym +@@ -0,0 +1 @@ ++"GSOAPSSL++" { global: *; }; +Index: gsoap-2.8.42/gsoap/gsoapssl.sym +=================================================================== +--- /dev/null ++++ gsoap-2.8.42/gsoap/gsoapssl.sym +@@ -0,0 +1 @@ ++GSOAPSSL { global: *; }; +Index: gsoap-2.8.42/gsoap/samples/autotest/Makefile.am +=================================================================== +--- gsoap-2.8.42.orig/gsoap/samples/autotest/Makefile.am ++++ gsoap-2.8.42/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 +171,10 @@ Index: gsoap-2.8.36/gsoap/samples/autotest/Makefile.am $(SOAP_CPP_SRC) : $(WSDLINPUT) $(WSDL) $(WSDL_FLAGS) $(WSDLINPUT) -Index: gsoap-2.8.36/gsoap/samples/databinding/Makefile.am +Index: gsoap-2.8.42/gsoap/samples/databinding/Makefile.am =================================================================== ---- gsoap-2.8.36.orig/gsoap/samples/databinding/Makefile.am -+++ gsoap-2.8.36/gsoap/samples/databinding/Makefile.am +--- gsoap-2.8.42.orig/gsoap/samples/databinding/Makefile.am ++++ gsoap-2.8.42/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-implicit.diff b/gsoap-02-implicit.diff new file mode 100644 index 0000000..1ef0471 --- /dev/null +++ b/gsoap-02-implicit.diff @@ -0,0 +1,26 @@ +From: Jan Engelhardt +Date: 2017-01-24 15:41:51.682076375 +0100 + +build: resolve compiler warnings + +stdsoap2_ck.c: In function ‘soap_s2float’: +stdsoap2_ck.c:14147:19: warning: implicit declaration of function ‘strtod_l’ [-Wimplicit-function-declaration] + *p = (float)strtod_l(s, &r, SOAP_LOCALE(soap)); + +References: https://sourceforge.net/p/gsoap2/bugs/1096/ +--- + gsoap/stdsoap2.cpp | 1 + + 1 file changed, 1 insertion(+) + +Index: gsoap-2.8.42/gsoap/stdsoap2.cpp +=================================================================== +--- gsoap-2.8.42.orig/gsoap/stdsoap2.cpp ++++ gsoap-2.8.42/gsoap/stdsoap2.cpp +@@ -50,6 +50,7 @@ compiling, linking, and/or using OpenSSL + A commercial use license is available from Genivia, Inc., contact@genivia.com + -------------------------------------------------------------------------------- + */ ++#define _GNU_SOURCE 1 + + #define GSOAP_LIB_VERSION 20842 + diff --git a/gsoap.changes b/gsoap.changes index 1f11bf9..a14a880 100644 --- a/gsoap.changes +++ b/gsoap.changes @@ -7,6 +7,7 @@ Tue Jan 24 13:53:09 UTC 2017 - jengelh@inai.de the library with: this replaces illegal UTF-8 input/output with the replacement character U+FFFD (or define your own `SOAP_UNKNOWN_UNICODE_CHAR`). +- Add gsoap-02-implicit.diff ------------------------------------------------------------------- Thu Jan 19 09:06:14 UTC 2017 - jengelh@inai.de diff --git a/gsoap.spec b/gsoap.spec index 5d0d596..6c3562d 100644 --- a/gsoap.spec +++ b/gsoap.spec @@ -29,6 +29,7 @@ Source: gsoap-%version.tar.xz Source2: sanitize_source.sh Patch1: gsoap-automake1_13.diff Patch2: gsoap-01-sharedlibs.diff +Patch3: gsoap-02-implicit.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: autoconf BuildRequires: automake @@ -83,7 +84,7 @@ available or under development. %prep %setup -q cmp gsoap/stdsoap2.cpp gsoap/stdsoap2.c -%patch -P 1 -P 2 -p1 +%patch -P 1 -P 2 -P 3 -p1 ln -fs stdsoap2.cpp gsoap/stdsoap2.c %build