[xmltooling] 02/17: New patch Discover-xerces-xmlsec-openssl-and-curl-via-pkg-conf.patch

Ferenc Wágner wferi-guest at moszumanska.debian.org
Thu Jul 21 18:17:55 UTC 2016


This is an automated email from the git hooks/post-receive script.

wferi-guest pushed a commit to branch debian/experimental
in repository xmltooling.

commit e5bb46772544017dcae0bce5158ef208490b809e
Author: Ferenc Wágner <wferi at niif.hu>
Date:   Tue Jul 5 12:07:19 2016 +0200

    New patch Discover-xerces-xmlsec-openssl-and-curl-via-pkg-conf.patch
    
    Discover xerces, xmlsec, openssl and curl via pkg-config
---
 ...rces-xmlsec-openssl-and-curl-via-pkg-conf.patch | 402 +++++++++++++++++++++
 debian/patches/series                              |   1 +
 2 files changed, 403 insertions(+)

diff --git a/debian/patches/Discover-xerces-xmlsec-openssl-and-curl-via-pkg-conf.patch b/debian/patches/Discover-xerces-xmlsec-openssl-and-curl-via-pkg-conf.patch
new file mode 100644
index 0000000..b5ed7fd
--- /dev/null
+++ b/debian/patches/Discover-xerces-xmlsec-openssl-and-curl-via-pkg-conf.patch
@@ -0,0 +1,402 @@
+From: =?utf-8?q?Ferenc_W=C3=A1gner?= <wferi at niif.hu>
+Date: Tue, 5 Jul 2016 12:01:51 +0200
+Subject: Discover xerces, xmlsec, openssl and curl via pkg-config
+
+---
+ configure.ac               | 171 ++++++++-------------------------------------
+ m4/ax_restore_flags.m4     |  52 ++++++++++++++
+ m4/ax_save_flags.m4        |  71 +++++++++++++++++++
+ xmltooling/Makefile.am     |  12 ++--
+ xmltoolingtest/Makefile.am |   3 +-
+ 5 files changed, 160 insertions(+), 149 deletions(-)
+ create mode 100644 m4/ax_restore_flags.m4
+ create mode 100644 m4/ax_save_flags.m4
+
+diff --git a/configure.ac b/configure.ac
+index 1263cdb..78ce864 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -122,32 +122,11 @@ PKG_CHECK_MODULES([log4shib], [log4shib],
+     [PKG_CHECK_MODULES([log4cpp], [log4cpp],
+         [AC_DEFINE([XMLTOOLING_LOG4CPP],[1],[Define to 1 if log4cpp library is used.])])])
+ 
+-# Xerces settings
+-AC_ARG_WITH(xerces,
+-    AS_HELP_STRING([--with-xerces=PATH],[where xerces-c is installed]),,
+-    [with_xerces=/usr])
+-if test x_$with_xerces != x_/usr; then
+-    CPPFLAGS="-I${with_xerces}/include $CPPFLAGS"
+-    LIBS="-L${with_xerces}/lib -lxerces-c $LIBS"
+-else
+-    LIBS="-lxerces-c $LIBS"
+-fi
+-
+-AC_CHECK_HEADER([xercesc/dom/DOM.hpp],,AC_MSG_ERROR([unable to find xerces header files]))
+-AC_MSG_CHECKING([Xerces version])
+-AC_PREPROC_IFELSE(
+-    [AC_LANG_PROGRAM([#include <xercesc/util/XercesVersion.hpp>],
+-[#if  _XERCES_VERSION != 20600
+-int i = 0;
+-#else
+-#error cannot use version 2.6.0
+-#endif])],
+-    [AC_MSG_RESULT(OK)],
+-    [AC_MSG_FAILURE([Xerces-C v2.6.0 has bugs that inhibit use with signed XML, please use a newer version])])
+-AC_LINK_IFELSE(
+-    [AC_LANG_PROGRAM([[#include <xercesc/util/PlatformUtils.hpp>]],
+-        [[xercesc::XMLPlatformUtils::Initialize()]])],
+-    ,[AC_MSG_ERROR([unable to link with Xerces])])
++# Xerces-C v2.6.0 has bugs that inhibit use with signed XML
++PKG_CHECK_MODULES([xerces],[xerces-c != 2.6.0])
++AX_SAVE_FLAGS
++CPPFLAGS="$xerces_CFLAGS $CPPFLAGS"
++LIBS="$xerces_LIBS $LIBS"
+ 
+ AC_MSG_CHECKING([whether Xerces is 64-bit clean])
+ AC_COMPILE_IFELSE(
+@@ -186,54 +165,18 @@ AC_COMPILE_IFELSE(
+     [AC_MSG_RESULT([yes])AC_DEFINE([XMLTOOLING_XERCESC_HAS_XMLBYTE_RELEASE],[1],[Define to 1 if Xerces XMLString includes XMLByte release.])],
+     [AC_MSG_RESULT([no])])
+ 
+-# XML-Security settings
++AX_RESTORE_FLAGS
++
+ AC_ARG_WITH(xmlsec,
+-    AS_HELP_STRING([--with-xmlsec=PATH], [where xmlsec is installed]),,
+-    [with_xmlsec=/usr])
+-
+-if test x_$with_xmlsec != x_no; then
+-
+-    # OpenSSL settings (need to do this first in case it's in a different spot from xmlsec)
+-    AC_ARG_WITH(openssl,
+-        AS_HELP_STRING([--with-openssl=PATH], [where openssl is installed]),
+-        [if test x_$with_openssl != x_/usr; then
+-            SSLFLAGS="-I${with_openssl}/include"
+-            SSLLIBS="-L${with_openssl}/lib -lcrypto -lssl"
+-        else
+-            SSLLIBS="-lcrypto -lssl"
+-        fi])
+-    
+-    if test "x$SSLLIBS" = "x" ; then
+-        AC_PATH_PROG(PKG_CONFIG, pkg-config)
+-        if test "x$PKG_CONFIG" != x && test "x$PKG_CONFIG" != "xno" ; then
+-            if pkg-config openssl ; then
+-                SSLLIBS="`$PKG_CONFIG --libs openssl`"
+-                SSLFLAGS="`$PKG_CONFIG --cflags openssl`"
+-            else
+-                AC_MSG_WARN([OpenSSL not supported by pkg-config, try --with-openssl instead])
+-            fi
+-        fi
+-    fi
+-    
+-    if test "x$SSLLIBS" = "x" ; then
+-        SSLLIBS="-lcrypto -lssl"
+-    fi
+-    
+-    AC_MSG_CHECKING(for OpenSSL cflags)
+-    AC_MSG_RESULT($SSLFLAGS)
+-    CPPFLAGS="$CPPFLAGS $SSLFLAGS"
+-    AC_MSG_CHECKING(for OpenSSL libraries)
+-    AC_MSG_RESULT($SSLLIBS)
+-    XMLSEC_LIBS="$XMLSEC_LIBS $SSLLIBS"
+-
+-    # save and append master libs
+-    save_LIBS="$LIBS"
+-    LIBS="$XMLSEC_LIBS $LIBS"
+-    
+-    AC_CHECK_HEADER([openssl/pem.h],,AC_MSG_ERROR([unable to find openssl header files]))
+-    AC_MSG_CHECKING(for ERR_load_CRYPTO_string)
+-    AC_TRY_LINK_FUNC([ERR_load_CRYPTO_strings],,AC_MSG_ERROR([unable to link with openssl libraries]))
+-    AC_MSG_RESULT(yes)
++    AS_HELP_STRING([--with-xmlsec],
++        [include signature/encryption support via Apache Santuario (XML Security) @<:@default=check@:>@]),,
++    [with_xmlsec=check])
++
++AS_IF([test "x$with_xmlsec" != xno],
++    [PKG_CHECK_MODULES([XMLSEC],[xml-security-c >= 1.4 openssl libcurl],
++        [AX_SAVE_FLAGS
++         CPPFLAGS="$XMLSEC_CFLAGS $CPPFLAGS"
++         LIBS="$XMLSEC_LIBS $LIBS"
+ 
+     AC_CHECK_DECL(EVP_sha512,
+         [AC_DEFINE([XMLTOOLING_OPENSSL_HAVE_SHA2],[1],[Define to 1 if OpenSSL supports the SHA-2 hash family.])],
+@@ -242,36 +185,6 @@ if test x_$with_xmlsec != x_no; then
+         [AC_DEFINE([XMLTOOLING_OPENSSL_HAVE_EC],[1],[Define to 1 if OpenSSL has EC support.])],
+         ,[#include <openssl/evp.h>])
+ 
+-    # restore master libs
+-    LIBS="$save_LIBS"
+-
+-    if test x_$with_xmlsec != x_/usr; then
+-        CPPFLAGS="-I${with_xmlsec}/include $CPPFLAGS"
+-        XMLSEC_LIBS="-L${with_xmlsec}/lib -lxml-security-c $XMLSEC_LIBS"
+-    else
+-        XMLSEC_LIBS="-lxml-security-c $XMLSEC_LIBS"
+-    fi
+-    
+-    # save and append master libs
+-    save_LIBS="$LIBS"
+-    LIBS="$XMLSEC_LIBS $LIBS"
+-    
+-    AC_CHECK_HEADER([xsec/utils/XSECPlatformUtils.hpp],,AC_MSG_ERROR([unable to find XML-Security header files]))
+-    AC_MSG_CHECKING([XML-Security version])
+-    AC_PREPROC_IFELSE(
+-	    [AC_LANG_PROGRAM([#include <xsec/utils/XSECPlatformUtils.hpp>],
+-        [#if XSEC_VERSION_MAJOR > 1 || (XSEC_VERSION_MAJOR == 1 && XSEC_VERSION_MEDIUM > 3)
+-int i = 0;
+-#else
+-#error need version 1.4.0 or later
+-#endif])],
+-        [AC_MSG_RESULT(OK)],
+-        [AC_MSG_FAILURE([XML-Security version 1.4.0 or greater is required.])])
+-        
+-    AC_LINK_IFELSE(
+-        [AC_LANG_PROGRAM([[#include <xsec/utils/XSECPlatformUtils.hpp>]],
+-            [[XSECPlatformUtils::Initialise()]])],,
+-        [AC_MSG_ERROR([unable to link with XML-Security])])
+     AC_CHECK_TYPE([xsecsize_t],[AC_DEFINE([HAVE_XSECSIZE_T],[1],[Define to 1 if you have the 'xsecsize_t' type.])])
+ 
+     AC_MSG_CHECKING([whether XML-Security-C has multiple CRL support])
+@@ -309,35 +222,6 @@ int i = 0;
+         [AC_MSG_RESULT([yes])AC_DEFINE([XMLTOOLING_XMLSEC_DEBUGLOGGING],[1],[Define to 1 if XML-Security-C includes debug logging support.])],
+         [AC_MSG_RESULT([no])])
+ 
+-    # restore master libs
+-    LIBS="$save_LIBS"
+-
+-    # libcurl settings
+-    AC_PATH_PROG(CURL_CONFIG,curl-config)
+-    AC_ARG_WITH(curl,
+-        AS_HELP_STRING([--with-curl=PATH], [where curl-config is installed]),
+-        [
+-        CURL_CONFIG="${with_curl}"
+-        if ! test -f "${CURL_CONFIG}" ; then
+-            CURL_CONFIG="${with_curl}/bin/curl-config"
+-        fi
+-        ])
+-    if test -f "${CURL_CONFIG}" ; then
+-        CPPFLAGS="`${CURL_CONFIG} --cflags` $CPPFLAGS"
+-        XMLSEC_LIBS="`${CURL_CONFIG} --libs` $XMLSEC_LIBS"
+-    else
+-        AC_MSG_ERROR([curl-config not found, may need to use --with-curl option])
+-    fi
+-
+-    # save and append master libs
+-    save_LIBS="$LIBS"
+-    LIBS="$XMLSEC_LIBS $LIBS"
+-	
+-    AC_CHECK_HEADER([curl/curl.h],,AC_MSG_ERROR([unable to find libcurl header files]))
+-    AC_LINK_IFELSE(
+-        [AC_LANG_PROGRAM([[#include <curl/curl.h>]],
+-            [[curl_global_init(CURL_GLOBAL_ALL)]])],,
+-        [AC_MSG_ERROR([unable to link with libcurl])])
+     AC_MSG_CHECKING([for CURLOPT_SSL_CTX_FUNCTION in curl.h])
+     AC_EGREP_HEADER([CURLOPT_SSL_CTX_FUNCTION], [curl/curl.h],
+         [AC_MSG_RESULT(yes)],
+@@ -346,16 +230,19 @@ int i = 0;
+     AC_MSG_CHECKING([for CURLINFO_TLS_SSL_PTR in curl.h])
+     AC_EGREP_HEADER([CURLINFO_TLS_SSL_PTR], [curl/curl.h],
+         [AC_DEFINE([HAVE_CURLINFO_TLS_SSL_PTR],[1],[Define to 1 if you have support for the CURLINFO_TLS_SSL_PTR feature.])])
+-    
+-    # restore master libs
+-    LIBS="$save_LIBS"
+-    
+-    AC_SUBST(XMLSEC_LIBS)
+-else
+-    AC_MSG_WARN([xmlsec disabled, building without signature/encryption support])
+-    AC_DEFINE([XMLTOOLING_NO_XMLSEC],[1],[Define to 1 if you wish to disable XML-Security-dependent features.])
+-fi
+-AM_CONDITIONAL(BUILD_XMLSEC,test x_$with_xmlsec != x_no)
++
++         AX_RESTORE_FLAGS
++        ],
++        [AS_IF([test "x$with_xmlsec" = xyes],
++               [AC_MSG_FAILURE([--with-xmlsec was given, but the package was not found])],
++               [AC_MSG_WARN([xmlsec disabled, building without signature/encryption support])
++                AC_DEFINE([XMLTOOLING_NO_XMLSEC],[1],
++                    [Define to 1 if you wish to disable XML-Security-dependent features.])]
++              )
++        ])
++    ])
++
++AM_CONDITIONAL(BUILD_XMLSEC,test "x$XMLSEC_LIBS" != x)
+ 
+ # Does the STL in use help or screw us?
+ AC_LINK_IFELSE(
+diff --git a/m4/ax_restore_flags.m4 b/m4/ax_restore_flags.m4
+new file mode 100644
+index 0000000..aafd363
+--- /dev/null
++++ b/m4/ax_restore_flags.m4
+@@ -0,0 +1,52 @@
++# ===========================================================================
++#     http://www.gnu.org/software/autoconf-archive/ax_restore_flags.html
++# ===========================================================================
++#
++# SYNOPSIS
++#
++#   AX_RESTORE_FLAGS([namespace])
++#
++# DESCRIPTION
++#
++#   Restore common compilation flags from temporary variables.
++#
++#   Compilation flags includes: CPPFLAGS, CFLAGS, CXXFLAGS, LDFLAGS, LIBS,
++#   OBJCFLAGS.
++#
++#   By default these flags are restored to a global (empty) namespace, but
++#   user could restore from specific NAMESPACE by using
++#   AX_RESTORE_FLAGS(NAMESPACE) macro.
++#
++#   Typical usage is like:
++#
++#     AX_SAVE_FLAGS(mypackage)
++#     CPPFLAGS="-Imypackagespath ${CPPFLAGS}"
++#     dnl ... do some detection ...
++#     AX_RESTORE_FLAGS(mypackage)
++#
++# LICENSE
++#
++#   Copyright (c) 2009 Filippo Giunchedi <filippo at esaurito.net>
++#   Copyright (c) 2011 The Board of Trustees of the Leland Stanford Junior University
++#   Copyright (c) 2011 Russ Allbery <rra at stanford.edu>
++#   Copyright (c) 2013 Bastien ROUCARIES <roucaries.bastien+autoconf at gmail.com>
++#
++#   Copying and distribution of this file, with or without modification, are
++#   permitted in any medium without royalty provided the copyright notice
++#   and this notice are preserved. This file is offered as-is, without any
++#   warranty.
++
++#serial 6
++
++# save one flag in name space
++AC_DEFUN([_AX_RESTORE_ONE_FLAG],[dnl
++  AS_VAR_PUSHDEF([_ax_restore_flag_var], [$2[]_$1[]_ax_save_flags])
++  AS_VAR_COPY($2[],_ax_restore_flag_var)
++  AS_VAR_POPDEF([_ax_restore_flag_var])
++])
++
++AC_DEFUN([AX_RESTORE_FLAGS], [dnl
++   m4_foreach([FLAG], dnl
++	      [_AX_SAVE_FLAGS_LIST()], dnl
++	      [_AX_RESTORE_ONE_FLAG([$1],FLAG)])
++])
+diff --git a/m4/ax_save_flags.m4 b/m4/ax_save_flags.m4
+new file mode 100644
+index 0000000..39f45be
+--- /dev/null
++++ b/m4/ax_save_flags.m4
+@@ -0,0 +1,71 @@
++# ===========================================================================
++#       http://www.gnu.org/software/autoconf-archive/ax_save_flags.html
++# ===========================================================================
++#
++# SYNOPSIS
++#
++#   AX_SAVE_FLAGS([NAMESPACE])
++#
++# DESCRIPTION
++#
++#   Save common compilation flags into temporary variables.
++#
++#   Compilation flags includes: CPPFLAGS, CFLAGS, CXXFLAGS, LDFLAGS, LIBS,
++#   OBJCFLAGS.
++#
++#   By default these flags are saved to a global (empty) namespace, but user
++#   could specify a specific NAMESPACE to AX_SAVE_FLAGS macro and latter
++#   restore it by using AX_RESTORE_FLAGS(NAMESPACE).
++#
++#     AX_SAVE_FLAGS(mypackage)
++#     CPPFLAGS="-Imypackagespath ${CPPFLAGS}"
++#     dnl .. do some detection ...
++#     AX_RESTORE_FLAGS(mypackage)
++#
++# LICENSE
++#
++#   Copyright (c) 2009 Filippo Giunchedi <filippo at esaurito.net>
++#   Copyright (c) 2011 The Board of Trustees of the Leland Stanford Junior University
++#   Copyright (c) 2011 Russ Allbery <rra at stanford.edu>
++#   Copyright (c) 2013 Bastien ROUCARIES <roucaries.bastien+autoconf at gmail.com>
++#
++#   Copying and distribution of this file, with or without modification, are
++#   permitted in any medium without royalty provided the copyright notice
++#   and this notice are preserved. This file is offered as-is, without any
++#   warranty.
++
++#serial 7
++
++# list of flag to save
++AC_DEFUN([_AX_SAVE_FLAGS_LIST],[dnl
++[CCASFLAGS],dnl
++[CFLAGS],dnl
++[CPPFLAGS],dnl
++[CXXFLAGS],dnl
++[ERLCFLAGS],dnl
++[FCFLAGS],dnl
++[FCLIBS],dnl
++[FFLAGS],dnl
++[FLIBS],dnl
++[GCJFLAGS],dnl
++[JAVACFLAGS],dnl
++[LDFLAGS],dnl
++[LIBS],dnl
++[OBJCFLAGS],dnl
++[OBJCXXFLAGS],dnl
++[UPCFLAGS],dnl
++[VALAFLAGS]dnl
++])
++
++# save one flag in name space
++AC_DEFUN([_AX_SAVE_ONE_FLAG],[
++  AS_VAR_PUSHDEF([_ax_save_flag_var], [$2[]_$1[]_ax_save_flags])
++  AS_VAR_COPY(_ax_save_flag_var, $2[])
++  AS_VAR_POPDEF([_ax_save_flag_var])
++])
++
++AC_DEFUN([AX_SAVE_FLAGS],[dnl
++   m4_foreach([FLAG], dnl
++	      [_AX_SAVE_FLAGS_LIST()], dnl
++	      [_AX_SAVE_ONE_FLAG([$1],FLAG)])
++])
+diff --git a/xmltooling/Makefile.am b/xmltooling/Makefile.am
+index 701c8fd..321e451 100644
+--- a/xmltooling/Makefile.am
++++ b/xmltooling/Makefile.am
+@@ -206,17 +206,17 @@ common_sources = \
+ libxmltooling_lite_la_SOURCES = \
+ 	${common_sources}
+ libxmltooling_lite_la_CPPFLAGS = -DXMLTOOLING_LITE
+-libxmltooling_lite_la_LDFLAGS = -version-info 7:0:0
+-libxmltooling_lite_la_CPPFLAGS += $(log4shib_CFLAGS) $(log4cpp_CFLAGS)
+-libxmltooling_lite_la_LDFLAGS += $(log4shib_LIBS) $(log4cpp_LIBS)
++libxmltooling_lite_la_LDFLAGS  = -version-info 7:0:0
++libxmltooling_lite_la_CPPFLAGS += $(xerces_CFLAGS) $(log4shib_CFLAGS) $(log4cpp_CFLAGS)
++libxmltooling_lite_la_LDFLAGS  += $(xerces_LIBS)   $(log4shib_LIBS)   $(log4cpp_LIBS)
+ 
+ if BUILD_XMLSEC
+ libxmltooling_la_SOURCES = \
+ 	${common_sources} \
+ 	${xmlsec_sources}
+-libxmltooling_la_LDFLAGS = $(XMLSEC_LIBS) -version-info 7:0:0
+-libxmltooling_la_CFLAGS = $(log4shib_CFLAGS) $(log4cpp_CFLAGS)
+-libxmltooling_la_LDFLAGS += $(log4shib_LIBS) $(log4cpp_LIBS)
++libxmltooling_la_LDFLAGS = -version-info 7:0:0
++libxmltooling_la_CPPFLAGS = $(XMLSEC_CFLAGS) $(xerces_CFLAGS) $(log4shib_CFLAGS) $(log4cpp_CFLAGS)
++libxmltooling_la_LDFLAGS += $(XMLSEC_LIBS)   $(xerces_LIBS)   $(log4shib_LIBS)   $(log4cpp_LIBS)
+ endif
+ 
+ install-exec-hook:
+diff --git a/xmltoolingtest/Makefile.am b/xmltoolingtest/Makefile.am
+index e96be98..779e808 100644
+--- a/xmltoolingtest/Makefile.am
++++ b/xmltoolingtest/Makefile.am
+@@ -5,7 +5,8 @@ if BUILD_UNITTEST
+ bin_PROGRAMS = xmltoolingtest
+ xmltoolingtest_CXXFLAGS = $(CXXTESTFLAGS)
+ if BUILD_XMLSEC
+-xmltoolingtest_LDFLAGS = $(XMLSEC_LIBS)
++xmltoolingtest_CPPFLAGS = $(xerces_CFLAGS) $(XMLSEC_CFLAGS)
++xmltoolingtest_LDFLAGS  = $(xerces_LIBS)   $(XMLSEC_LIBS)
+ xmltoolingtest_LDADD = $(top_builddir)/xmltooling/libxmltooling.la
+ else
+ xmltoolingtest_LDADD = $(top_builddir)/xmltooling/libxmltooling-lite.la
diff --git a/debian/patches/series b/debian/patches/series
index 06d7807..b44092d 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
 Disable-forcing-of-libtool-silent.patch
 Use-pkg-config-for-log4shib-log4cpp.patch
 Fail-configuration-if-dlopen-is-not-found.patch
+Discover-xerces-xmlsec-openssl-and-curl-via-pkg-conf.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-shibboleth/xmltooling.git



More information about the Pkg-shibboleth-devel mailing list