Summary:             Generator Tools for Coding SOAP/XML Web Services in C and C++
Name:                gsoap
Version:             2.8.104
Release:             1
License:             GPLv2+ with exceptions
URL:                 http://gsoap2.sourceforge.net/
Source0:             http://downloads.sourceforge.net/gsoap2/%{name}_%{version}.zip
Source1:             soapcpp2.1
Source2:             wsdl2h.1
Source3:             index.html
Patch0:              %{name}-libtool.patch
Patch1:              %{name}-doxygen-tabs.patch
Patch2:              gsoap-wsse.patch
Patch3:              gsoap-plugins-hardening.patch
Patch4:              gsoap-url-parse-hardening.patch
BuildRequires:       gcc-c++ flex bison dos2unix openssl-devel zlib-devel autoconf automake libtool
BuildRequires:       doxygen graphviz make
%description
The gSOAP Web services development toolkit offers an XML to C/C++
language binding to ease the development of SOAP/XML Web services in C
and C/C++.

%package devel
Summary:             Devel libraries and headers for linking with gSOAP generated stubs
Requires:            %name = %version-%release
%description devel
gSOAP libraries, headers and generators for linking with and creating
gSOAP generated stubs.

%package doc
Summary:             Documentation for gSOAP
BuildArch:           noarch
%description doc
gSOAP documentation in html.

%prep
%setup -q -n gsoap-2.8
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
find gsoap/samples/autotest/databinding/examples -name '*.xml' \
    -exec chmod a-x {} ';'
chmod a-x gsoap/doc/fonts/*
dos2unix -k README.txt LICENSE.txt NOTES.txt GPLv2_license.txt \
    gsoap/plugin/sessions.c gsoap/plugin/sessions.h
rm -rf gsoap/extras gsoap/mod_gsoap gsoap/Symbian
sed 's!$(top_srcdir)/gsoap/extras/\*!!' -i gsoap/Makefile.am
rm -rf gsoap/doc/apache gsoap/doc/wininet gsoap/doc/isapi
rm -rf gsoap/bin
rm gsoap/samples/rest/person
rm gsoap/samples/wcf/Basic/TransportSecurity/calculator
rm gsoap/VisualStudio2005/wsdl2h/wsdl2h/soapcpp2.exe
rm gsoap/samples/webserver/opt{C.c,H.h,Stub.h}
rm gsoap/VisualStudio2005/wsdl2h/wsdl2h/wsdl{C.cpp,H.h,Stub.h}
find . -name .DS_Store -exec rm {} ';'

%build
autoreconf --install --force
%configure --disable-static --prefix=/usr --enable-ipv6 --enable-samples
make
cp -pr gsoap/doc gsoap/doc-build
pushd gsoap/doc-build
rm -rf */html
for f in */Doxyfile ; do
  ( cd $(dirname $f) ; doxygen Doxyfile )
done
rm README.txt index.html
rm doxygen_footer.html doxygen_header.html
rm guide/index.md guide/stdsoap2.h soapdoc2.html
rm GeniviaLogo2_trans_noslogan.png
rm genivia_content.css genivia_tabs.css
rm */Doxyfile
rm */html/genivia_tabs.css
rm -f */doxygen_sqlite3.db
popd
install -m 644 -p %{SOURCE3} gsoap/doc-build

%install
make install DESTDIR=%{buildroot}
rm -f %{buildroot}/%_libdir/*.la
rm %{buildroot}/%_datadir/gsoap/plugin/testmsgr-httpda.o
rm %{buildroot}/%_datadir/gsoap/plugin/testmsgr-smdevp.o
mkdir -p %{buildroot}/%_mandir/man1
install -m 644 -p %{SOURCE1} %{SOURCE2} %{buildroot}/%_mandir/man1

%check
make check

%files
%doc factsheet.pdf NOTES.txt README.txt
%license LICENSE.txt GPLv2_license.txt
%_libdir/libgsoap-*.so
%_libdir/libgsoap++-*.so
%_libdir/libgsoapck-*.so
%_libdir/libgsoapck++-*.so
%_libdir/libgsoapssl-*.so
%_libdir/libgsoapssl++-*.so

%files devel
%_bindir/soapcpp2
%_bindir/wsdl2h
%_mandir/man1/soapcpp2.1*
%_mandir/man1/wsdl2h.1*
%_libdir/libgsoap.so
%_libdir/libgsoap++.so
%_libdir/libgsoapck.so
%_libdir/libgsoapck++.so
%_libdir/libgsoapssl.so
%_libdir/libgsoapssl++.so
%_includedir/stdsoap2.h
%dir %_datadir/gsoap
%dir %_datadir/gsoap/import
%_datadir/gsoap/import/*
%dir %_datadir/gsoap/WS
%_datadir/gsoap/WS/*
%dir %_datadir/gsoap/custom
%_datadir/gsoap/custom/*
%dir %_datadir/gsoap/plugin
%_datadir/gsoap/plugin/*
%_libdir/pkgconfig/gsoapck.pc
%_libdir/pkgconfig/gsoapck++.pc
%_libdir/pkgconfig/gsoap.pc
%_libdir/pkgconfig/gsoap++.pc
%_libdir/pkgconfig/gsoapssl.pc
%_libdir/pkgconfig/gsoapssl++.pc

%files doc
%doc gsoap/doc-build/*
%license LICENSE.txt GPLv2_license.txt

%changelog
* Mon Sep 6 2021 wulei <wulei80@huawei.com> - 2.8.104-1
- package init
