[xml-security-c] 05/08: New patch Use-pkg-config-for-Xerces-OpenSSL-and-NSS-and-provid.patch

Ferenc Wágner wferi-guest at moszumanska.debian.org
Thu Jul 21 11:59:39 UTC 2016


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

wferi-guest pushed a commit to branch master
in repository xml-security-c.

commit 894b63819c182d7ea1eb54c10e3b2ba9032e9b2b
Author: Ferenc Wágner <wferi at niif.hu>
Date:   Mon Jul 4 17:18:46 2016 +0200

    New patch Use-pkg-config-for-Xerces-OpenSSL-and-NSS-and-provid.patch
    
    Use pkg-config for Xerces, OpenSSL and NSS, and provide a pkg-config file
---
 debian/libxml-security-c-dev.install               |   1 +
 ...fig-for-Xerces-OpenSSL-and-NSS-and-provid.patch | 312 +++++++++++++++++++++
 debian/patches/series                              |   1 +
 3 files changed, 314 insertions(+)

diff --git a/debian/libxml-security-c-dev.install b/debian/libxml-security-c-dev.install
index 34bfc00..d413661 100644
--- a/debian/libxml-security-c-dev.install
+++ b/debian/libxml-security-c-dev.install
@@ -1,2 +1,3 @@
 usr/include
 usr/lib/*/lib*.so
+usr/lib/*/pkgconfig
diff --git a/debian/patches/Use-pkg-config-for-Xerces-OpenSSL-and-NSS-and-provid.patch b/debian/patches/Use-pkg-config-for-Xerces-OpenSSL-and-NSS-and-provid.patch
new file mode 100644
index 0000000..a84f573
--- /dev/null
+++ b/debian/patches/Use-pkg-config-for-Xerces-OpenSSL-and-NSS-and-provid.patch
@@ -0,0 +1,312 @@
+From: =?utf-8?q?Ferenc_W=C3=A1gner?= <wferi at niif.hu>
+Date: Mon, 4 Jul 2016 17:18:01 +0200
+Subject: Use pkg-config for Xerces, OpenSSL and NSS,
+ and provide a pkg-config file
+
+We use only the crypto part of OpenSSL
+---
+ Makefile.am                |   2 +
+ configure.ac               | 149 ++++++++++-----------------------------------
+ m4/ax_pkg_check_modules.m4 |  69 +++++++++++++++++++++
+ xml-security-c.pc.in       |  12 ++++
+ 4 files changed, 116 insertions(+), 116 deletions(-)
+ create mode 100644 m4/ax_pkg_check_modules.m4
+ create mode 100644 xml-security-c.pc.in
+
+diff --git a/Makefile.am b/Makefile.am
+index 4a65b87..3737973 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -19,6 +19,8 @@ ACLOCAL_AMFLAGS = -I m4
+ 
+ SUBDIRS = xsec
+ 
++pkgconfig_DATA = xml-security-c.pc
++
+ EXTRA_DIST = \
+ 	CHANGELOG.txt \
+ 	INSTALL.txt \
+diff --git a/configure.ac b/configure.ac
+index 8591297..1457fe1 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -23,6 +23,7 @@ AC_CONFIG_AUX_DIR(build-aux)
+ AC_CONFIG_MACRO_DIR(m4)
+ AM_INIT_AUTOMAKE([subdir-objects])
+ AC_PROG_LIBTOOL
++PKG_INSTALLDIR
+ 
+ AC_ARG_ENABLE(debug,
+     AS_HELP_STRING([--enable-debug],[Have GCC compile with symbols (Default = no)]),
+@@ -39,7 +40,7 @@ fi
+ 
+ # Define the files we wish to generate
+ 
+-AC_CONFIG_FILES([Makefile xsec/Makefile])
++AC_CONFIG_FILES([xml-security-c.pc Makefile xsec/Makefile])
+ AC_CONFIG_HEADERS([config.h xsec/framework/XSECConfig.hpp])
+ AH_BOTTOM([#include <xsec/framework/XSECVersion.hpp>])
+ 
+@@ -86,28 +87,9 @@ return (cwd != NULL) ? EXIT_SUCCESS : EXIT_FAILURE;])],
+ 
+ AC_LANG(C++)
+ 
+-# Xerces is required
+-
+-AC_ARG_WITH(xerces,AS_HELP_STRING([--with-xerces=PATH], [where xerces-c is installed]),
+-    [if test x_$with_xerces != x_/usr; then
+-        LDFLAGS="-L${with_xerces}/lib $LDFLAGS"
+-        CPPFLAGS="-I${with_xerces}/include $CPPFLAGS"
+-    fi])
+-LIBS="-lxerces-c $LIBS"
+-
+-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 >= 20000
+-int i = 0;
+-#else
+-#error cannot use version 1.x
+-#endif])],
+-    [AC_MSG_RESULT(OK)],
+-    [AC_MSG_FAILURE([Xerces-C 2.x or 3.x is required])])
+-AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <xercesc/util/PlatformUtils.hpp>]], [[xercesc::XMLPlatformUtils::Initialize()]])],
+-    [],[AC_MSG_ERROR([unable to link with Xerces])])
++AX_PKG_CHECK_MODULES([xerces],,[xerces-c >= 2])
++CPPFLAGS="$xerces_CFLAGS $CPPFLAGS"
++LIBS="$xerces_LIBS $LIBS"
+ 
+ # Get user options
+ 
+@@ -383,47 +365,17 @@ fi
+ 
+ # Crypto provider options (OpenSSL / NSS)
+ 
+-AC_ARG_WITH(openssl,
+-    AS_HELP_STRING([--with-openssl],[Use Openssl.  Values = 'yes' or installation directory (Default = yes)]),
+-    use_openssl=$withval, use_openssl=yes)
+-
+-if test x"$use_openssl" != "xno" ; then
+-
+-    # Check for explicit location or try pkg-config
+-    if test x"$use_openssl" = "xyes" ; 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=PATH instead])
+-            fi
+-        fi
+-    else
+-        if test x_$use_openssl != x_/usr; then
+-            SSLFLAGS="-I${use_openssl}/include"
+-            SSLLIBS="-L${use_openssl}/lib -lcrypto -lssl"
+-        else
+-            SSLLIBS="-lcrypto -lssl"
+-        fi
+-    fi
+-    
+-    AC_MSG_CHECKING(for OpenSSL cflags)
+-    AC_MSG_RESULT($SSLFLAGS)
+-    CPPFLAGS="$CPPFLAGS $SSLFLAGS"
+-    
+-    AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <openssl/opensslv.h>]])],
+-        [AC_DEFINE([XSEC_HAVE_OPENSSL],[1],[Define if OpenSSL is in use.])],
+-        [AC_MSG_ERROR([Unable to find OpenSSL headers])]);
+-    
+-    AC_MSG_CHECKING(for OpenSSL libraries)
+-    AC_MSG_RESULT($SSLLIBS)
+-    LIBS="$LIBS $SSLLIBS"
+-    
+-    AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <openssl/evp.h>]], [[EVP_EncryptInit(NULL, NULL, NULL, NULL) ; return 0; ]])],,
+-        [AC_MSG_ERROR(["Unable to find libcrypto"])])
+-    
++AC_ARG_WITH([openssl],
++    [AS_HELP_STRING([--with-openssl],[use the OpenSSL crypto provider @<:@default=check@:>@])],,
++    [with_openssl=check])
++
++AS_IF([test x"$with_openssl" != xno],
++    [AX_PKG_CHECK_MODULES([openssl],,[libcrypto],
++        [with_openssl=found
++         AC_DEFINE([XSEC_HAVE_OPENSSL],[1],[Define if OpenSSL is in use])
++         CPPFLAGS="$openssl_CFLAGS $CPPFLAGS"
++         LIBS="$openssl_LIBS $LIBS"
++
+     # Now try to find out some things about this version of OpenSSL
+     
+     AC_MSG_CHECKING([for const input buffers in OpenSSL])
+@@ -472,61 +424,26 @@ if test x"$use_openssl" != "xno" ; then
+         [AC_MSG_RESULT([yes])
+     	AC_DEFINE([XSEC_OPENSSL_D2IX509_CONST_BUFFER],[1],[Define to 1 if OpenSSL X509 API has const input buffer.])],
+     	[AC_MSG_RESULT([no])])
+-fi
+ 
+-AC_ARG_WITH(nss,
+-    AS_HELP_STRING([--with-nss],[Use NSS.  Values = 'yes' or installation directory (Default = no)]),
+-    use_nss=$withval, use_nss=no)
+-
+-if test x"$use_nss" != "xno" ; then
+-
+-    # Check for explicit location or try pkg-config
+-    if test x"$use_nss" = "xyes" ; then
+-        AC_PATH_PROG(PKG_CONFIG, pkg-config,)
+-        if test "x$PKG_CONFIG" != x && test "x$PKG_CONFIG" != "xno" ; then
+-            if pkg-config nss ; then
+-                NSSLIBS="`$PKG_CONFIG --libs nss`"
+-                NSSFLAGS="`$PKG_CONFIG --cflags nss`"
+-            else
+-                AC_MSG_WARN([NSS not supported by pkg-config, try --with-nss=PATH instead])
+-            fi
+-        else
+-            check=`nss-config --version 2>/dev/null`
+-            if test -n "$check"; then
+-                NSSLIBS=`nss-config --libs`
+-                NSSFLAGS=`nss-config --cflags`
+-            else
+-                AC_MSG_ERROR([Unable to use pkg-config or find nss-config, try --with-nss=PATH])
+-            fi
+-        fi
+-    else
+-        if test x_$use_nss != x_/usr; then
+-            NSSLIBS="-L${use_nss}/lib"
+-        fi
+-        # NSS is broken and doesn't use a standard include path.
+-        NSSFLAGS="-I${use_nss}/include/nss3 -I${use_nss}/include/nss"
+-        NSSLIBS="$NSSLIBS -lssl3 -lsmime3 -lnss3 -lplds4 -lplc4 -lnspr4"
+-    fi
+-    
+-    AC_MSG_CHECKING(for NSS cflags)
+-    AC_MSG_RESULT($NSSFLAGS)
+-    CPPFLAGS="$CPPFLAGS $NSSFLAGS"
+-    
+-    AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nss.h>]])],
+-        [AC_DEFINE([XSEC_HAVE_NSS],[1],[Define if NSS is in use.])],
+-        [AC_MSG_ERROR([Unable to find NSS headers])])
+-    
+-    AC_MSG_CHECKING(for NSS libraries)
+-    AC_MSG_RESULT($NSSLIBS)
+-    LIBS="$LIBS $NSSLIBS"
+-    
+-    AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <nss.h>]], [[NSS_NoDB_Init(NULL);]])],,
+-        [AC_MSG_ERROR([Unable to link with NSS])])
+-fi
++        ],[AS_IF([test "x$with_openssl" != xcheck],[AC_MSG_ERROR([Unable to find OpenSSL])])])
++    ])
++
++AC_ARG_WITH([nss],
++    [AS_HELP_STRING([--with-nss],[use the NSS crypto provider @<:@default=check@:>@])],,
++    [with_nss=check])
++
++AS_IF([test x"$with_nss" != xno],
++    [AX_PKG_CHECK_MODULES([nss],,[nss],
++        [with_nss=found
++         AC_DEFINE([XSEC_HAVE_NSS],[1],[Define if NSS is in use])
++         CPPFLAGS="$nss_CFLAGS $CPPFLAGS"
++         LIBS="$nss_LIBS $LIBS"
++        ],[AS_IF([test "x$with_nss" != "xcheck"],[AC_MSG_ERROR([Unable to find NSS])])])
++    ])
+ 
+ # Populate the Makefile conditionals
+-AM_CONDITIONAL(XSEC_AM_HAVE_OPENSSL, test x"$use_openssl" != "xno")
+-AM_CONDITIONAL(XSEC_AM_HAVE_NSS, test x"$use_nss" != "xno")
++AM_CONDITIONAL([XSEC_AM_HAVE_OPENSSL],[test "x$with_openssl" = xfound])
++AM_CONDITIONAL([XSEC_AM_HAVE_NSS],[test "x$with_nss" = xfound])
+ 
+ # output the Makefiles
+ AC_OUTPUT
+diff --git a/m4/ax_pkg_check_modules.m4 b/m4/ax_pkg_check_modules.m4
+new file mode 100644
+index 0000000..f3af0f6
+--- /dev/null
++++ b/m4/ax_pkg_check_modules.m4
+@@ -0,0 +1,69 @@
++# ===========================================================================
++#   http://www.gnu.org/software/autoconf-archive/ax_pkg_check_modules.html
++# ===========================================================================
++#
++# SYNOPSIS
++#
++#   AX_PKG_CHECK_MODULES(PREFIX, PUBLIC-MODULES, PRIVATE-MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND], [PUBLIC-VARIABLE], [PRIVATE-VARIABLE])
++#
++# DESCRIPTION
++#
++#   A wrapper around PKG_CHECK_MODULES which splits the list of modules into
++#   public and private dependencies, and produces two variables listing the
++#   dependencies across all invocations of AX_PKG_CHECK_MODULES. These two
++#   variables are exposed via AC_SUBST, and should be used in a pkg-config
++#   file as the substituted values for Requires and Requires.private.
++#
++#   The PREFIX, PUBLIC-MODULES and PRIVATE-MODULES arguments should be
++#   specified as for PKG_CHECK_MODULES, with the concatenation of
++#   PUBLIC-MODULES and PRIVATE-MODULES equaling the LIST-OF-MODULES from
++#   PKG_CHECK_MODULES.  The ACTION-IF-FOUND and ACTION-IF-NOT-FOUND
++#   arguments are optional, and should also be specified as for
++#   PKG_CHECK_MODULES.  ACTION-IF-FOUND is evaluated if the full
++#   LIST-OF-MODULES is found; ACTION-IF-NOT-FOUND similarly.
++#
++#   PUBLIC-VARIABLE defaults to AX_PACKAGE_REQUIRES, and PRIVATE-VARIABLE
++#   defaults to AX_PACKAGE_REQUIRES_PRIVATE.  Both variables are AC_SUBST-ed
++#   by this macro.
++#
++#   For example:
++#
++#     AX_PKG_CHECK_MODULES([GLIB],[glib-2.0 gio-2.0],[gthread-2.0])
++#     AX_PKG_CHECK_MODULES([DBUS],[],[dbus-glib-1 >= 0.98 dbus-1])
++#
++#   results in the substitutions:
++#
++#     AX_PACKAGE_REQUIRES="glib-2.0 gio-2.0"
++#     AX_PACKAGE_REQUIRES_PRIVATE="gthread-2.0 dbus-glib-1 >= 0.98 dbus-1"
++#
++#   and can be used with a template pkg-config file (.pc.in) using:
++#
++#     Requires: @AX_PACKAGE_REQUIRES@
++#     Requires.private: @AX_PACKAGE_REQUIRES_PRIVATE@
++#
++# LICENSE
++#
++#   Copyright (c) 2014 Philip Withnall <philip at tecnocode.co.uk>
++#
++#   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 2
++
++AC_DEFUN([AX_PKG_CHECK_MODULES],[
++    m4_define([ax_package_requires],
++              [m4_default_quoted([$6],[AX_PACKAGE_REQUIRES])])
++    m4_define([ax_package_requires_private],
++              [m4_default_quoted([$7],[AX_PACKAGE_REQUIRES_PRIVATE])])
++
++    ax_package_requires="$[]ax_package_requires $2"
++    ax_package_requires_private="$[]ax_package_requires_private $3"
++
++    PKG_CHECK_MODULES([$1],[$2 $3],[$4],[$5])
++
++    # Substitute output.
++    AC_SUBST(ax_package_requires)
++    AC_SUBST(ax_package_requires_private)
++])dnl AX_PKG_CHECK_MODULES
+diff --git a/xml-security-c.pc.in b/xml-security-c.pc.in
+new file mode 100644
+index 0000000..d4557f5
+--- /dev/null
++++ b/xml-security-c.pc.in
+@@ -0,0 +1,12 @@
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++libdir=@libdir@
++includedir=@includedir@
++ 
++Name: @PACKAGE_NAME@
++Description: Apache Santuario (formerly XML security) C++ library
++Version: @PACKAGE_VERSION@
++Libs: -L${libdir} -lxml-security-c
++Cflags: -I${includedir}
++Requires: @AX_PACKAGE_REQUIRES@
++Requires.private: @AX_PACKAGE_REQUIRES_PRIVATE@
diff --git a/debian/patches/series b/debian/patches/series
index 7946b5a..bc0cf68 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -18,3 +18,4 @@ Remove-unused-variable-3.patch
 Fix-indentation-5.patch
 Avoid-GCC-warning-suggesting-parentheses.patch
 Fix-typo-occured-occurred.patch
+Use-pkg-config-for-Xerces-OpenSSL-and-NSS-and-provid.patch

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



More information about the Pkg-shibboleth-devel mailing list