[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