File gsoap.spec of Package gsoap

#
# spec file for package gsoap
#
# 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
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


Name:           gsoap
%define lname	libgsoap-2_8_28
Version:        2.8.29
Release:        3.1
Summary:        Toolkit for C/C++ server and client web service applications
License:        SUSE-GPL-2.0+-with-openssl-exception
Group:          Development/Libraries/C and C++
Url:            http://gsoap2.sf.net/

#DL-URL:	http://downloads.sf.net/gsoap2/gsoap_2.8.22.zip
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-03-seqpoint.diff
Patch4:         gsoap-mindeflateratio.diff
Patch6:         gsoap-no-tcpfastopen-fail.diff
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  bison
BuildRequires:  flex
BuildRequires:  gcc-c++
BuildRequires:  libtool
BuildRequires:  pkg-config
BuildRequires:  pkgconfig(gnutls)
BuildRequires:  pkgconfig(libcrypto)
BuildRequires:  pkgconfig(libssl)
BuildRequires:  pkgconfig(zlib)
Packager: Alessandro de Oliveira Faria (A.K.A. CABELO) <cabelo@opensuse.org>
%if 0%{?suse_version}
BuildRequires:  fdupes
%endif

%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.

%package devel
Summary:        Development files for the gSOAP toolkit
Group:          Development/Libraries/C and C++

%description devel
This package contains the runtime development programs for gSOAP.

%package -n %lname
Summary:        Runtime libraries for gSOAP
Group:          Development/Libraries/C and C++

%description -n %lname
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.

%package -n libgsoap-devel
Summary:        Development files for libgsoap
Group:          Development/Libraries/C and C++
Requires:       %lname = %version

%description -n libgsoap-devel
This package contains the include headers and development library
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 6 -p1
%patch -P 13  -p1
ln -fs stdsoap2.cpp gsoap/stdsoap2.c

%build
# The version is used for filenames, and GSOAP changed its ABI between
# 2.8.22 and 2.8.28, so we need the full version.
perl -i -lpe 's{AC_INIT\(gsoap, 2.8\)}{AC_INIT([gsoap], [%version])}' \
	configure.ac
# Rebuild configure - fix that utterly long mktime test.
# Also needed because Makefile.am and configure.ac are touched.
autoreconf -fi

%configure --enable-ipv6 --disable-static
pushd gsoap/src/
# build prerequisites for parallel build first
make soapcpp2_yacc.c
popd
make %{?_smp_mflags}

%install
b="%buildroot"
make install DESTDIR="$b"
rm -f "$b/%_libdir"/*.la
%if 0%{?fdupes:1}
%fdupes %buildroot
%endif

%post   -n %lname -p /sbin/ldconfig
%postun -n %lname -p /sbin/ldconfig

%files devel
%defattr(-,root,root)
%_bindir/*
%_datadir/%name/

%files -n %lname
%defattr(-,root,root)
%_libdir/libgsoap*.a

%files -n libgsoap-devel
%defattr(-,root,root)
%_includedir/*
%_libdir/pkgconfig/*

%changelog
* Thu Feb 18 2016 jengelh@inai.de
- Employ full version SO naming because of ABI changes within 2.8.x
* Wed Feb  3 2016 jengelh@inai.de
- 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)
- Add gsoap-00-builtsource.diff, gsoap-03-seqpoint.diff,
  gsoap-no-tcpfastopen-fail.diff
* Tue Jun  2 2015 jengelh@inai.de
- Replace gsoap-02-typepuns.diff with better version from SF
- Add gsoap-allocator.diff to please UBSAN
* Thu May 28 2015 jengelh@inai.de
- Drop unnecessary -version-info argument from _LDFLAGS variable
  in gsoap-01-sharedlibs.diff (we have -release)
* Thu Apr 23 2015 jengelh@inai.de
- Update to new upstream release 2.8.22
  * Enhancements include XSD 1.1 support and improved portability.
* Thu Apr 23 2015 jengelh@inai.de
- Include SSL libraries in the link to reduce undefined symbols
* Thu Jan 15 2015 jengelh@inai.de
- Update to new upstream release 2.8.21
  * Added xs:precision and xs:scale support.
  * Added support for BPEL PartnerLink and VariableProperties to
  wsdl2h in support of BPEL projects.
  * Added soapcpp -z2 flag for backward compatibility with to 2.7.x:
  omit XML output of elements for pointers that are NULL even when
  minOccurs=1 (required).
  * Changed wsdl2h C++ output to always generate pass-by-reference
  response parameters (disable with -z6).
  * Added XML 1.1 control char encoding support.
  * Added -DWITH_REPLACE_ILLEGAL_UTF8 compilation option to replace
  UTF8 content that is outside the allowed range of XML 1.0.
- Remove gsoap-05-ipv6.diff, gsoap-06-ipv6retry.diff
  (merged upstream)
* Sun Aug  3 2014 jengelh@inai.de
- Add gsoap-06-ipv6retry.diff to try all getaddrinfo results
* Wed Jan 15 2014 jengelh@inai.de
- Update to new upstream release 2.8.17
  * Improved WCF interop duplex messaging requiring ChannelInstances.
  * Fixed complexType restriction of schema types with redefined
  attributes in wsdl2h output.
  * Fixed wcf/WS/DualHttp example (wrong use of send_X() replaced by X()
  for client-side operations X, to allow HTTP keep-alive to be used).
  * Fixed use of sprintf's that trigger Valgrind and Fortify warnings.
  * Fixed parsing character strings from CDATA sections ending in ']'.
  * Fixed DOM output for SOAP_XML_CANONICAL c14n normalization of
  xmlns namespace bindings.
  * Added WS-RM message queueing option for WS-RM NoDiscard.
  * Added wsdl2h option -r for authorized web access and proxy access.
- Remove gsoap-04-strerror.diff (merged upstream)
* Thu Jun 27 2013 jengelh@inai.de
- Update to new upstream release 2.8.15
  * Added wsdl2h option -R for auto-generation of REST-based service
  operations (also added examples/rest example).
  * Change soap_read_X() and soap_write_X() to prevent removal of
  HTTP headers after calling soap_connect().
  * Fixed automatic detection of DIME/MIME transfers.
  * Fixed a HTTP 1.0 chunking issue.
  * Fixed HTTP digest authentication with DIME/MIME transfers.
  * Fixed OpenSSL subject alt name check.
  * Fixed a HTTP 100 message handling issue.
- Reenable default optimization
* Thu Feb 28 2013 jengelh@inai.de
- Update to new upstream release 2.8.14
  * Added explanation of wsdl2h option -Nname which is used to
  generate a service (and its prefix name) for each service
  binding (bindings are collected in one service by default).
* Wed Nov 14 2012 jengelh@inai.de
- Update to new upstream release 2.8.11
  * Added soapcpp2 -0 option to remove SOAP bindings when applicable
  * Changed wsdl2h output for the few cases that multiple service
  bindings are defined, use wsdl2h -Nns for backward compatibility
- Update to new upstream release 2.8.10
  * Added soapcpp2 -Q option (C++ namespaces)
  * Added wsdl2h -b option (bi-directional operations for duplex services)
- Removed gsoap-03-initext.diff, merged upstream
* Tue Sep  4 2012 jengelh@inai.de
- Update to new upstream release 2.8.9
  * Added examples to interoperate with WCF basicHttp,
  basicTransportSecurity, basicMessageSecurity, and wsDualHttp.
  * Added soapcpp2 option -A for service dispatching based on Action
  values only.
  * Added wsdl2h option -z3.
  * Added wsse support for WS-SecureConversation.
  * Added wsrm5 WS-ReliableMessaging 1.0 2005.
  * Added iOS plugin with examples.
  * Improved WS-Policy analysis and reporting.
  * Fixed and improved wsse plugin for WS-Security interoperability
  with WCF and other implementations (required a small API change).
  * Fixed HTTP headers for NTLM.
  * Fixed httpda plugin OpenSSL init crash in md5evp.c.
- Update to new upstream release 2.8.10
  * Added soapcpp2 -Q option (C++ namespaces).
  * Added wsdl2h -b option (bi-directional operations for duplex
  services).
  * Updated WS-Addressing and WS-ReliableMessaging plugins,
  documentation, and examples.
* Fri Mar  9 2012 cfarrell@suse.com
- license update: SUSE-GPL-2.0+-with-openssl-exception
  gsoap allows linking against openssl. Use the SUSE- proprietary prefix
  until spdx.org accepts this license
* Tue Feb  7 2012 mseben@gmail.com
- Update to gsoap 2.8.7
  * Added new REST examples.
  * Added libary versioning check to ensure project builds are
  consistent.
  * Improved interoperability of wsdl2h output wrt. to element
  qualification.
  * Renamed TANDEM to TANDEM_NONSTOP to prevent naming conflicts.
  * Fixed WS-Discovery URL.
  * Fixed soapcpp2 option -i and -j server chaining.
- changes in version 2.8.6
  * Improved WS-Security compatibility.
  * Fixed multi and cyclic WSDL import.
  * Fixed tags of qualified referenced elements.
  * Fixed C builds for improved portability.
- changes in version 2.8.5
  * Fixed build issues with WS-Discovery.
  * Fixed HTTP basic auth crash.
  * Fixed WITH_COMPAT and WITH_C_LOCALE.
  * Fixed wsdl2h output for XSD abstract element extraneous ';'.
* Thu Nov 10 2011 jengelh@medozas.de
- Update to gsoap 2.8.4
  * Added NTLM support (enabled with -DWITH_NTLM, requires libntlm).
  * Added WS-Discovery 1.1 support
  * Added //gsoap typed directive to control xsi:type attribuation
  per namespace.
  * Added SOAP_XML_NOTYPE flag to disable xsi:type attributes.
  * Improved WS-Security encryption (AES,
  soap_wsse_add_EncryptedKey_encrypt_only).
  * Improved HTTP proxy authentication support (digest and NTLM).
- Added patch to fix empty error strings (gsoap-04-strerror.diff)
- Added patch to avoid calling IPv6-only socket options on non-IPv6
  sockets (gsoap-05-ipv6.diff)
* Tue Oct 18 2011 jengelh@medozas.de
- Initial package for build.opensuse.org
openSUSE Build Service is sponsored by