changeset 1169:9ca7f1fa7c9b

improvements for package gsoap Don't insist on gnutls in native build. Do insist on gnutls in MinGW build. Switch to winsock2, since gnu tls requires it. Add missing -lgpg-error.
author Mark Brand <mabrand@mabrand.nl>
date Mon, 20 Sep 2010 12:00:00 +0200
parents 8ca3933f27ca
children 25345fdf9752
files src/gsoap-3-winsock2.patch src/gsoap-4-gpg-error.patch src/gsoap.mk
diffstat 3 files changed, 267 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/gsoap-3-winsock2.patch	Mon Sep 20 12:00:00 2010 +0200
@@ -0,0 +1,243 @@
+This file is part of mingw-cross-env.
+See doc/index.html for further information.
+
+This patch has been taken from:
+http://sourceforge.net/tracker/?func=detail&aid=3071779&group_id=52781&atid=468023
+
+diff -urN a/gsoap/doc/soapdoc2.html b/gsoap/doc/soapdoc2.html
+--- a/gsoap/doc/soapdoc2.html	2010-09-19 01:19:28.000000000 +0200
++++ b/gsoap/doc/soapdoc2.html	2010-09-20 11:19:02.306175307 +0200
+@@ -2599,10 +2599,10 @@
+ <div class="p"><!----></div>
+ 
+ <ul>
+-<li> Win32 builds need winsock.dll (MS Visual C++ "wsock32.lib")
++<li> Win32 builds need winsock.dll (MS Visual C++ "ws2_32.lib")
+ To do this in Visual C++ 6.0, go to "Project", "settings", select the "Link"
+ tab (the project file needs to be selected in the file view) and add
+-"<i>wsock32.lib</i>" to the "<i>Object/library modules</i>" entry.<br /><br /></li>
++"<i>ws2_32.lib</i>" to the "<i>Object/library modules</i>" entry.<br /><br /></li>
+ 
+ <li> Use files with extension .cpp only (don't mix .c with .cpp).<br /><br /></li>
+ 
+diff -urN a/gsoap/mod_gsoap/gsoap_win/isapi/samples/calc/winstuff.cpp b/gsoap/mod_gsoap/gsoap_win/isapi/samples/calc/winstuff.cpp
+--- a/gsoap/mod_gsoap/gsoap_win/isapi/samples/calc/winstuff.cpp	2010-09-19 01:19:36.000000000 +0200
++++ b/gsoap/mod_gsoap/gsoap_win/isapi/samples/calc/winstuff.cpp	2010-09-20 11:18:57.285678758 +0200
+@@ -6,7 +6,7 @@
+ #include <winsock2.h>
+ 
+ #if _MSC_VER > 1000
+-#pragma comment(lib, "wsock32")
++#pragma comment(lib, "ws2_32")
+ #endif
+ 
+ static struct WSAInit { \
+diff -urN a/gsoap/mod_gsoap/gsoap_win/isapi/samples/dime/winstuff.cpp b/gsoap/mod_gsoap/gsoap_win/isapi/samples/dime/winstuff.cpp
+--- a/gsoap/mod_gsoap/gsoap_win/isapi/samples/dime/winstuff.cpp	2010-09-19 01:19:36.000000000 +0200
++++ b/gsoap/mod_gsoap/gsoap_win/isapi/samples/dime/winstuff.cpp	2010-09-20 11:18:57.281678556 +0200
+@@ -8,7 +8,7 @@
+ 
+ 
+ #if _MSC_VER > 1000
+-#pragma comment(lib, "wsock32")
++#pragma comment(lib, "ws2_32")
+ #endif
+ 
+ static struct WSAInit { \
+diff -urN a/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp b/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp
+--- a/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp	2010-09-19 01:19:57.000000000 +0200
++++ b/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.cpp	2010-09-20 11:18:57.769678579 +0200
+@@ -52,10 +52,10 @@
+ 
+ Installation note:
+ 
+-Win32 build needs winsock.dll (Visual C++ "wsock32.lib")
++Win32 build needs winsock.dll (Visual C++ "ws2_32.lib")
+ To do this in Visual C++ 6.0, go to "Project", "settings", select the "Link"
+ tab (the project file needs to be selected in the file view) and add
+-"wsock32.lib" to the "Object/library modules" entry
++"ws2_32.lib" to the "Object/library modules" entry
+ 
+ On Mac OS X with gcc (GCC) 3.1 20020420 (prerelease) you MUST compile with
+ -fstack_check when using -O2 because gcc 3.1 has a bug that smashes the stack
+@@ -76,7 +76,7 @@
+ #  ifdef UNDER_CE
+ #   pragma comment(lib, "winsock.lib")
+ #  else
+-#   pragma comment(lib, "wsock32.lib")
++#   pragma comment(lib, "ws2_32.lib")
+ #  endif
+ #  pragma warning(disable : 4996) /* disable deprecation warnings */
+ # endif
+diff -urN a/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.h b/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.h
+--- a/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.h	2010-09-19 01:19:57.000000000 +0200
++++ b/gsoap/samples/calc_vs2005/calc_vs2005/stdsoap2.h	2010-09-20 11:18:57.790175332 +0200
+@@ -665,7 +665,7 @@
+ #  define SOAP_GAI_STRERROR gai_strerrorA
+ # else
+ #  ifndef __BORLANDC__
+-#   include <winsock.h> /* Visual Studio 2005 users: you must install the Platform SDK (R2) */
++#   include <winsock2.h> /* Visual Studio 2005 users: you must install the Platform SDK (R2) */
+ /* # include <winsock2.h> */ /* Alternative: use winsock2 (not available with eVC), enable this line and comment out the line above */
+ #  else
+ #   include <winsock2.h> /* Borland C */
+diff -urN a/gsoap/samples/wsse/stdsoap2.c b/gsoap/samples/wsse/stdsoap2.c
+--- a/gsoap/samples/wsse/stdsoap2.c	2010-09-19 01:20:10.000000000 +0200
++++ b/gsoap/samples/wsse/stdsoap2.c	2010-09-20 11:18:57.846175378 +0200
+@@ -52,10 +52,10 @@
+ 
+ Installation note:
+ 
+-Win32 build needs winsock.dll (Visual C++ "wsock32.lib")
++Win32 build needs winsock.dll (Visual C++ "ws2_32.lib")
+ To do this in Visual C++ 6.0, go to "Project", "settings", select the "Link"
+ tab (the project file needs to be selected in the file view) and add
+-"wsock32.lib" to the "Object/library modules" entry
++"ws2_32.lib" to the "Object/library modules" entry
+ 
+ On Mac OS X with gcc (GCC) 3.1 20020420 (prerelease) you MUST compile with
+ -fstack_check when using -O2 because gcc 3.1 has a bug that smashes the stack
+@@ -76,7 +76,7 @@
+ #  ifdef UNDER_CE
+ #   pragma comment(lib, "winsock.lib")
+ #  else
+-#   pragma comment(lib, "wsock32.lib")
++#   pragma comment(lib, "ws2_32.lib")
+ #  endif
+ #  pragma warning(disable : 4996) /* disable deprecation warnings */
+ # endif
+diff -urN a/gsoap/samples/wsse/stdsoap2.h b/gsoap/samples/wsse/stdsoap2.h
+--- a/gsoap/samples/wsse/stdsoap2.h	2010-09-19 01:20:10.000000000 +0200
++++ b/gsoap/samples/wsse/stdsoap2.h	2010-09-20 11:18:57.874175123 +0200
+@@ -665,7 +665,7 @@
+ #  define SOAP_GAI_STRERROR gai_strerrorA
+ # else
+ #  ifndef __BORLANDC__
+-#   include <winsock.h> /* Visual Studio 2005 users: you must install the Platform SDK (R2) */
++#   include <winsock2.h> /* Visual Studio 2005 users: you must install the Platform SDK (R2) */
+ /* # include <winsock2.h> */ /* Alternative: use winsock2 (not available with eVC), enable this line and comment out the line above */
+ #  else
+ #   include <winsock2.h> /* Borland C */
+diff -urN a/gsoap/stdsoap2.c b/gsoap/stdsoap2.c
+--- a/gsoap/stdsoap2.c	2010-09-19 01:20:12.000000000 +0200
++++ b/gsoap/stdsoap2.c	2010-09-20 11:18:57.117678339 +0200
+@@ -52,10 +52,10 @@
+ 
+ Installation note:
+ 
+-Win32 build needs winsock.dll (Visual C++ "wsock32.lib")
++Win32 build needs winsock.dll (Visual C++ "ws2_32.lib")
+ To do this in Visual C++ 6.0, go to "Project", "settings", select the "Link"
+ tab (the project file needs to be selected in the file view) and add
+-"wsock32.lib" to the "Object/library modules" entry
++"ws2_32.lib" to the "Object/library modules" entry
+ 
+ On Mac OS X with gcc (GCC) 3.1 20020420 (prerelease) you MUST compile with
+ -fstack_check when using -O2 because gcc 3.1 has a bug that smashes the stack
+@@ -76,7 +76,7 @@
+ #  ifdef UNDER_CE
+ #   pragma comment(lib, "winsock.lib")
+ #  else
+-#   pragma comment(lib, "wsock32.lib")
++#   pragma comment(lib, "ws2_32.lib")
+ #  endif
+ #  pragma warning(disable : 4996) /* disable deprecation warnings */
+ # endif
+diff -urN a/gsoap/stdsoap2.cpp b/gsoap/stdsoap2.cpp
+--- a/gsoap/stdsoap2.cpp	2010-09-19 01:20:12.000000000 +0200
++++ b/gsoap/stdsoap2.cpp	2010-09-20 11:18:57.005678597 +0200
+@@ -52,10 +52,10 @@
+ 
+ Installation note:
+ 
+-Win32 build needs winsock.dll (Visual C++ "wsock32.lib")
++Win32 build needs winsock.dll (Visual C++ "ws2_32.lib")
+ To do this in Visual C++ 6.0, go to "Project", "settings", select the "Link"
+ tab (the project file needs to be selected in the file view) and add
+-"wsock32.lib" to the "Object/library modules" entry
++"ws2_32.lib" to the "Object/library modules" entry
+ 
+ On Mac OS X with gcc (GCC) 3.1 20020420 (prerelease) you MUST compile with
+ -fstack_check when using -O2 because gcc 3.1 has a bug that smashes the stack
+@@ -76,7 +76,7 @@
+ #  ifdef UNDER_CE
+ #   pragma comment(lib, "winsock.lib")
+ #  else
+-#   pragma comment(lib, "wsock32.lib")
++#   pragma comment(lib, "ws2_32.lib")
+ #  endif
+ #  pragma warning(disable : 4996) /* disable deprecation warnings */
+ # endif
+diff -urN a/gsoap/stdsoap2.h b/gsoap/stdsoap2.h
+--- a/gsoap/stdsoap2.h	2010-09-19 01:20:12.000000000 +0200
++++ b/gsoap/stdsoap2.h	2010-09-20 11:19:00.978175369 +0200
+@@ -665,7 +665,7 @@
+ #  define SOAP_GAI_STRERROR gai_strerrorA
+ # else
+ #  ifndef __BORLANDC__
+-#   include <winsock.h> /* Visual Studio 2005 users: you must install the Platform SDK (R2) */
++#   include <winsock2.h> /* Visual Studio 2005 users: you must install the Platform SDK (R2) */
+ /* # include <winsock2.h> */ /* Alternative: use winsock2 (not available with eVC), enable this line and comment out the line above */
+ #  else
+ #   include <winsock2.h> /* Borland C */
+diff -urN a/gsoap/VisualStudio2005/README.txt b/gsoap/VisualStudio2005/README.txt
+--- a/gsoap/VisualStudio2005/README.txt	2010-09-19 01:20:13.000000000 +0200
++++ b/gsoap/VisualStudio2005/README.txt	2010-09-20 11:18:57.302175378 +0200
+@@ -1,7 +1,7 @@
+ 
+ Visual Studio 2005 Solution files for soapcpp2 and wsdl2h.
+ 
+-If not already installed, install the Platform SDK (R2) for winsock.h
++If not already installed, install the Platform SDK (R2) for winsock2.h
+ 
+ To build soapcpp2, first install Bison and Flex (in the default dirs):
+ 	http://gnuwin32.sourceforge.net/packages/bison.htm
+diff -urN a/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp b/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp
+--- a/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp	2010-09-19 01:20:14.000000000 +0200
++++ b/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.cpp	2010-09-20 11:18:57.389678446 +0200
+@@ -52,10 +52,10 @@
+ 
+ Installation note:
+ 
+-Win32 build needs winsock.dll (Visual C++ "wsock32.lib")
++Win32 build needs winsock.dll (Visual C++ "ws2_32.lib")
+ To do this in Visual C++ 6.0, go to "Project", "settings", select the "Link"
+ tab (the project file needs to be selected in the file view) and add
+-"wsock32.lib" to the "Object/library modules" entry
++"ws2_32.lib" to the "Object/library modules" entry
+ 
+ On Mac OS X with gcc (GCC) 3.1 20020420 (prerelease) you MUST compile with
+ -fstack_check when using -O2 because gcc 3.1 has a bug that smashes the stack
+@@ -76,7 +76,7 @@
+ #  ifdef UNDER_CE
+ #   pragma comment(lib, "winsock.lib")
+ #  else
+-#   pragma comment(lib, "wsock32.lib")
++#   pragma comment(lib, "ws2_32.lib")
+ #  endif
+ #  pragma warning(disable : 4996) /* disable deprecation warnings */
+ # endif
+diff -urN a/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.h b/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.h
+--- a/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.h	2010-09-19 01:20:14.000000000 +0200
++++ b/gsoap/VisualStudio2005/wsdl2h/wsdl2h/stdsoap2.h	2010-09-20 11:18:57.537678408 +0200
+@@ -665,7 +665,7 @@
+ #  define SOAP_GAI_STRERROR gai_strerrorA
+ # else
+ #  ifndef __BORLANDC__
+-#   include <winsock.h> /* Visual Studio 2005 users: you must install the Platform SDK (R2) */
++#   include <winsock2.h> /* Visual Studio 2005 users: you must install the Platform SDK (R2) */
+ /* # include <winsock2.h> */ /* Alternative: use winsock2 (not available with eVC), enable this line and comment out the line above */
+ #  else
+ #   include <winsock2.h> /* Borland C */
+diff -urN a/README.txt b/README.txt
+--- a/README.txt	2010-09-19 01:20:17.000000000 +0200
++++ b/README.txt	2010-09-20 11:18:56.574175394 +0200
+@@ -238,7 +238,7 @@
+ 
+ Win32 builds of clients and services requires winsock.dll. To do this in
+ Visual C++ 6.0, go to "Project", "settings", select the "Link" tab (the
+-project file needs to be selected in the file view) and add "wsock32.lib" to
++project file needs to be selected in the file view) and add "ws2_32.lib" to
+ the "Object/library modules" entry. The distribution contains a Visual Studio
+ 2005 project example in the 'samples/calc_vs2005' folder with the necessary
+ project settings to link libraries and automatically invoke to soapcpp2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/gsoap-4-gpg-error.patch	Mon Sep 20 12:00:00 2010 +0200
@@ -0,0 +1,20 @@
+This file is part of mingw-cross-env.
+See doc/index.html for further information.
+
+This patch has been taken from:
+http://sourceforge.net/tracker/?func=detail&aid=3071775&group_id=52781&atid=468023
+
+diff -urN a/configure.in b/configure.in
+--- a/configure.in	2010-09-19 01:19:25.000000000 +0200
++++ b/configure.in	2010-09-20 11:41:01.573680715 +0200
+@@ -167,8 +167,8 @@
+   if test "x$with_gnutls" = "xyes"; then
+     AC_MSG_RESULT(yes)
+     WSDL2H_EXTRA_FLAGS="-DWITH_GNUTLS -DWITH_GZIP"
+-    WSDL2H_EXTRA_LIBS="-lgnutls -lgcrypt -lz"
+-    SAMPLE_SSL_LIBS="-lgnutls -lgcrypt -lz"
++    WSDL2H_EXTRA_LIBS="-lgnutls -lgcrypt -lgpg-error -lz"
++    SAMPLE_SSL_LIBS="-lgnutls -lgcrypt -lgpg-error -lz"
+     WSDL2H_SOAP_CPP_LIB="libgsoapssl++.a"
+   else
+     AC_MSG_RESULT(no)
--- a/src/gsoap.mk	Mon Sep 20 02:11:23 2010 +0200
+++ b/src/gsoap.mk	Mon Sep 20 12:00:00 2010 +0200
@@ -10,7 +10,7 @@
 $(PKG)_FILE     := gsoap_$($(PKG)_VERSION).zip
 $(PKG)_WEBSITE  := http://gsoap2.sourceforge.net/
 $(PKG)_URL      := http://$(SOURCEFORGE_MIRROR)/project/gsoap2/gSOAP/$($(PKG)_FILE)
-$(PKG)_DEPS     := gcc openssl
+$(PKG)_DEPS     := gcc openssl gnutls
 
 define $(PKG)_UPDATE
     $(call SOURCEFORGE_FILES,http://sourceforge.net/projects/gsoap2/files/) | \
@@ -33,8 +33,7 @@
     cd '$(1)' && autoheader
 
     # Native build to get tools wsdl2h and soapcpp2
-    cd '$(1)' && ./configure \
-        --enable-gnutls
+    cd '$(1)' && ./configure
 
     # Parallel bulds can fail
     $(MAKE) -C '$(1)'/gsoap -j 1
@@ -50,7 +49,8 @@
     # http://groups.google.com/group/ikarus-users/browse_thread/thread/fd1d101eac32633f
     cd '$(1)' && ac_cv_func_malloc_0_nonnull=yes ./configure \
         --prefix='$(PREFIX)/$(TARGET)' \
-        --host='$(TARGET)'
+        --host='$(TARGET)' \
+        --enable-gnutls
 
     # Building for mingw requires native soapcpp2
     ln -s '$(PREFIX)/bin/$(TARGET)-soapcpp2' '$(1)'/gsoap/src/soapcpp2