Accepting request 76002 from home:jengelh:dev

The GSOAP libraries.

OBS-URL: https://build.opensuse.org/request/show/76002
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/gsoap?expand=0&rev=1
This commit is contained in:
Ismail Dönmez 2011-07-10 19:38:59 +00:00 committed by Git OBS Bridge
commit 35670cd99c
8 changed files with 349 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

121
gsoap-01-sharedlibs.diff Normal file
View File

@ -0,0 +1,121 @@
From: Jan Engelhardt <jengelh@medozas.de>
Date: 2011-07-01 17:19:00 +0200
build: always use shared libraries
---
configure.in | 9 ++++-----
gsoap/Makefile.am | 32 +++++++++++++++++++-------------
gsoap/samples/autotest/Makefile.am | 2 +-
gsoap/samples/databinding/Makefile.am | 2 +-
4 files changed, 25 insertions(+), 20 deletions(-)
Index: gsoap-2.8.3/configure.in
===================================================================
--- gsoap-2.8.3.orig/configure.in
+++ gsoap-2.8.3/configure.in
@@ -16,8 +16,7 @@ AM_PROG_CC_C_O
AM_PROG_LEX
AC_PROG_YACC
AC_PROG_CPP
-AC_PROG_RANLIB
-#AC_PROG_LIBTOOL
+LT_INIT
AC_PROG_LN_S
AC_PROG_AWK
AC_PROG_INSTALL
@@ -222,13 +221,13 @@ if test "x$with_openssl" = "xyes"; then
WSDL2H_EXTRA_FLAGS="-DWITH_GNUTLS -DWITH_GZIP"
WSDL2H_EXTRA_LIBS="-lgnutls -lgcrypt -lgpg-error -lz"
SAMPLE_SSL_LIBS="-lgnutls -lgcrypt -lgpg-error -lz"
- WSDL2H_SOAP_CPP_LIB="libgsoapssl++.a"
+ WSDL2H_SOAP_CPP_LIB="libgsoapssl++.la"
else
AC_MSG_RESULT(no)
WSDL2H_EXTRA_FLAGS="-DWITH_OPENSSL -DWITH_GZIP"
WSDL2H_EXTRA_LIBS="-lssl -lcrypto -lz"
SAMPLE_SSL_LIBS="-lssl -lcrypto -lz"
- WSDL2H_SOAP_CPP_LIB="libgsoapssl++.a"
+ WSDL2H_SOAP_CPP_LIB="libgsoapssl++.la"
fi
if test -n "$OPENSSL"; then
WSDL2H_EXTRA_FLAGS="-I${OPENSSL}/include ${WSDL2H_EXTRA_FLAGS}"
@@ -240,7 +239,7 @@ else
WSDL2H_EXTRA_FLAGS=
WSDL2H_EXTRA_LIBS=
SAMPLE_SSL_LIBS=
- WSDL2H_SOAP_CPP_LIB="libgsoap++.a"
+ WSDL2H_SOAP_CPP_LIB="libgsoap++.la"
fi
AC_SUBST(WSDL2H_EXTRA_FLAGS)
AC_SUBST(WSDL2H_EXTRA_LIBS)
Index: gsoap-2.8.3/gsoap/Makefile.am
===================================================================
--- gsoap-2.8.3.orig/gsoap/Makefile.am
+++ gsoap-2.8.3/gsoap/Makefile.am
@@ -34,20 +34,26 @@ stdsoap2_ssl_cpp.cpp: stdsoap2.cpp
dom_cpp.cpp: dom.cpp
$(LN_S) -f $(srcdir)/dom.cpp dom_cpp.cpp
-lib_LIBRARIES = libgsoap.a libgsoap++.a libgsoapck.a libgsoapck++.a libgsoapssl.a libgsoapssl++.a
+lib_LTLIBRARIES = libgsoap.la libgsoap++.la libgsoapck.la libgsoapck++.la libgsoapssl.la libgsoapssl++.la
-libgsoap_a_SOURCES = stdsoap2.c dom.c
-libgsoap_a_CFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform)
-libgsoap___a_SOURCES = stdsoap2_cpp.cpp dom_cpp.cpp
-libgsoap___a_CXXFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform)
-libgsoapck_a_SOURCES = stdsoap2_ck.c dom.c
-libgsoapck_a_CFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) -DWITH_COOKIES
-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_SOURCES = stdsoap2_ssl_cpp.cpp dom_cpp.cpp
-libgsoapssl___a_CXXFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform) $(WSDL2H_EXTRA_FLAGS) -DWITH_DOM
+libgsoap_la_SOURCES = stdsoap2.c dom.c
+libgsoap_la_CFLAGS = $(SOAPCPP2_DEBUG) $(SOAPCPP2_NONAMESPACES) $(SOAPCPP2_IPV6) -D$(platform)
+libgsoap_la_LDFLAGS = -release ${PACKAGE_VERSION} -version-info 0:0:0
+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_LDFLAGS = ${libgsoap_la_LDFLAGS}
+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}
BUILT_SOURCES = stdsoap2_cpp.cpp dom_cpp.cpp $(lib_LIBRARIES)
Index: gsoap-2.8.3/gsoap/samples/autotest/Makefile.am
===================================================================
--- gsoap-2.8.3.orig/gsoap/samples/autotest/Makefile.am
+++ gsoap-2.8.3/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
SOAP_CPP_SRC=soapC.cpp soapServer.cpp
-SOAP_CPP_LIB=$(top_builddir)/gsoap/libgsoap++.a
+SOAP_CPP_LIB=$(top_builddir)/gsoap/libgsoap++.la
$(SOAP_CPP_SRC) : $(WSDLINPUT)
$(WSDL) $(WSDL_FLAGS) $(WSDLINPUT)
Index: gsoap-2.8.3/gsoap/samples/databinding/Makefile.am
===================================================================
--- gsoap-2.8.3.orig/gsoap/samples/databinding/Makefile.am
+++ gsoap-2.8.3/gsoap/samples/databinding/Makefile.am
@@ -14,7 +14,7 @@ SOAP_FLAGS=-2 -CS -p address -I$(top_src
WSDLINPUT=$(srcdir)/address.xsd
SOAPHEADER=$(srcdir)/address.h
SOAP_CPP_SRC=addressC.cpp
-SOAP_CPP_LIB=$(top_builddir)/gsoap/libgsoap++.a
+SOAP_CPP_LIB=$(top_builddir)/gsoap/libgsoap++.la
$(SOAP_CPP_SRC) : $(WSDLINPUT)
$(WSDL) $(WSDL_FLAGS) $(WSDLINPUT)

31
gsoap-02-typepuns.diff Normal file
View File

@ -0,0 +1,31 @@
From: Jan Engelhardt <jengelh@medozas.de>
Date: 2011-07-01 17:19:00 +0200
src: fix invocation of undefined behavior
The int type may have a stricter alignment than buf, and as such,
using *(int *)buf is prone to undefined behavior, usually manifesting
themselves in SIGBUS.
---
gsoap/stdsoap2.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Index: gsoap-2.8.3/gsoap/stdsoap2.c
===================================================================
--- gsoap-2.8.3.orig/gsoap/stdsoap2.c
+++ gsoap-2.8.3/gsoap/stdsoap2.c
@@ -2946,10 +2946,12 @@ int
SOAP_FMAC2
soap_rand()
{ unsigned char buf[4];
+ int r;
if (!soap_ssl_init_done)
soap_ssl_init();
RAND_pseudo_bytes(buf, 4);
- return *(int*)buf;
+ memcpy(&r, buf, sizeof(r));
+ return r;
}
#endif
#endif

29
gsoap-03-initext.diff Normal file
View File

@ -0,0 +1,29 @@
From: Jan Engelhardt <jengelh@medozas.de>
Date: 2011-07-01 17:19:00 +0200
build: resolve compiler warning
An extern declaration must not be a definition.
wsdl2h.cpp:88:7: warning: 'mapfile' initialized and declared 'extern'
wsdl2h.cpp:89:7: warning: 'import_path' initialized and declared 'extern'
wsdl2h.cpp:90:7: warning: 'cwd_path' initialized and declared 'extern'
wsdl2h.cpp:91:7: warning: 'cppnamespace' initialized and declared 'extern'
---
gsoap/wsdl/wsdl2h.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: gsoap-2.8.3/gsoap/wsdl/wsdl2h.cpp
===================================================================
--- gsoap-2.8.3.orig/gsoap/wsdl/wsdl2h.cpp
+++ gsoap-2.8.3/gsoap/wsdl/wsdl2h.cpp
@@ -84,7 +84,7 @@ char *infile[MAXINFILES],
*proxy_host = NULL,
*proxy_userid = NULL,
*proxy_passwd = NULL;
-extern const char
+const char
*mapfile = WSDL_TYPEMAP_FILE,
*import_path = WSDL2H_IMPORT_PATH,
*cwd_path = NULL,

3
gsoap-2.8.3.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7c8dddc7242264d9c027ffab2d78729e68f5a951908b357b39e2194c8179b51a
size 3004944

104
gsoap.spec Normal file
View File

@ -0,0 +1,104 @@
Name: gsoap
Summary: Toolkit for C/C++ server and client web service applications
Version: 2.8.3
Release: 0
Group: Development/Libraries/C and C++
URL: http://gsoap2.sf.net/
License: GPLv2
Source: gsoap-%version.tar.xz
Patch1: gsoap-01-sharedlibs.diff
Patch2: gsoap-02-typepuns.diff
Patch3: gsoap-03-initext.diff
BuildRoot: %_tmppath/%name-%version-build
BuildRequires: bison, fdupes flex, gcc-c++, libgnutls-devel
BuildRequires: libopenssl-devel, zlib-devel, xz
%description
The gSOAP toolkit provides a cross-platform software development
toolkit for C and C++ server and client Web service applications, and
simplifies the overall use of XML in any type of application. The
toolkit supports SOAP 1.1/1.2 RPC encoding and document/literal
styles, WSDL 1.1, MTOM/MIME/DIME attachments (streaming),
SOAP-over-UDP, request-response and one-way messaging. The toolkit
also supports WS-Addressing and WS-Security, with several other WS-*
available or under development.
Authors:
--------
Robert A. van Engelen <engelen@acm.org>
%package devel
Summary: Development files for the gSOAP toolkit
Group: Development/Libraries/C and C++
Requires: %name = %version
%description devel
This package contains the development files for gSOAP.
%package -n libgsoap
Summary: Runtime libraries for gSOAP
Group: Development/Libraries/C and C++
%description -n libgsoap
The gSOAP toolkit provides a cross-platform software development
toolkit for C and C++ server and client Web service applications, and
simplifies the overall use of XML in any type of application. The
toolkit supports SOAP 1.1/1.2 RPC encoding and document/literal
styles, WSDL 1.1, MTOM/MIME/DIME attachments (streaming),
SOAP-over-UDP, request-response and one-way messaging. The toolkit
also supports WS-Addressing and WS-Security, with several other WS-*
available or under development.
Authors:
--------
Robert A. van Engelen <engelen@acm.org>
%package -n libgsoap-devel
Summary: Development files for libgsoap
Group: Development/Libraries/C and C++
Requires: %name = %version
%description -n libgsoap-devel
This package contains the development files for libgsoap.
%prep
%setup -qn gsoap-%version
%patch -P 1 -P 2 -P 3 -p1
%build
# Rebuild configure - fix that utterly long mktime test.
autoreconf -fi;
%configure --enable-ipv6 --disable-static
pushd gsoap/src/;
make soapcpp2_yacc.c;
popd;
make %{?_smp_mflags};
%install
b="%buildroot";
make install DESTDIR="$b";
find "$b" -type f -name "*.la" -delete;
%fdupes %buildroot
%post -n libgsoap -p /sbin/ldconfig
%postun -n libgsoap -p /sbin/ldconfig
%files devel
%defattr(-,root,root)
%_bindir/*
%_datadir/%name
%files -n libgsoap
%defattr(-,root,root)
%_libdir/*.so.*
%files -n libgsoap-devel
%defattr(-,root,root)
%_includedir/*
%_libdir/*.so
%_libdir/pkgconfig/*
%changelog

37
sanitize_source.sh Normal file
View File

@ -0,0 +1,37 @@
#!/bin/sh -x
#
# Shrink the gsoap archive from 11 MB -> 3 MB.
#
# Requires: fdupes hxtools
if ! which fdupes >/dev/null; then
echo "fdupes not installed.";
exit 1;
fi;
if ! which fduphl >/dev/null; then
echo "hxtools:fduphl not installed.";
exit 1;
fi;
version="2.8.3";
shortver="2.8"; # agh...
rm -Rf "gsoap-$shortver" "gsoap-$version";
unzip "gsoap_$version.zip";
# Someone failed at sane version number tagging.
mv "gsoap-$shortver" "gsoap-$version";
# Remove executables, backups.
rm -Rf "gsoap-$version/gsoap/bin" \
"gsoap-$version/samples/link++/xmas" \
"gsoap-$version"/*.old \
"gsoap-$version/autom4te.cache";
find "gsoap-$version" -type f "(" \
-iname "*.exe" -o -iname "*.dll" -o -name "*.o" -o \
-name "*~" ")" -delete;
fduphl "gsoap-$version";
echo Now...
find "gsoap-$version" -print0 | sort -z | \
tar -T- --null --owner=root --group=root --no-recur --use=xz \
-cvf "gsoap-$version.tar.xz";