From 72b9e9040d58c15f0302bd8abda28179f04e1c5f Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 16 Aug 2017 10:43:18 +0800 Subject: [PATCH 1/4] Add and use pkg-config for libgcrypt instead of -config scripts. Upstream-Status: Denied [upstream have indicated they don't want a pkg-config dependency] RP 2014/5/22 Rebase to 1.8.0 Signed-off-by: Hongxu Jia --- configure.ac | 1 + src/libgcrypt.m4 | 71 +++-------------------------------------------------- src/libgcrypt.pc.in | 33 +++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 67 deletions(-) create mode 100644 src/libgcrypt.pc.in diff --git a/configure.ac b/configure.ac index bbe8104..3d2de73 100644 --- a/configure.ac +++ b/configure.ac @@ -2607,6 +2607,7 @@ random/Makefile doc/Makefile src/Makefile src/gcrypt.h +src/libgcrypt.pc src/libgcrypt-config src/versioninfo.rc tests/Makefile diff --git a/src/libgcrypt.m4 b/src/libgcrypt.m4 index c67cfec..4ea5f2c 100644 --- a/src/libgcrypt.m4 +++ b/src/libgcrypt.m4 @@ -29,30 +29,6 @@ dnl is added to the gpg_config_script_warn variable. dnl AC_DEFUN([AM_PATH_LIBGCRYPT], [ AC_REQUIRE([AC_CANONICAL_HOST]) - AC_ARG_WITH(libgcrypt-prefix, - AC_HELP_STRING([--with-libgcrypt-prefix=PFX], - [prefix where LIBGCRYPT is installed (optional)]), - libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="") - if test x"${LIBGCRYPT_CONFIG}" = x ; then - if test x"${libgcrypt_config_prefix}" != x ; then - LIBGCRYPT_CONFIG="${libgcrypt_config_prefix}/bin/libgcrypt-config" - else - case "${SYSROOT}" in - /*) - if test -x "${SYSROOT}/bin/libgcrypt-config" ; then - LIBGCRYPT_CONFIG="${SYSROOT}/bin/libgcrypt-config" - fi - ;; - '') - ;; - *) - AC_MSG_WARN([Ignoring \$SYSROOT as it is not an absolute path.]) - ;; - esac - fi - fi - - AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config, no) tmp=ifelse([$1], ,1:1.2.0,$1) if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` @@ -62,48 +38,13 @@ AC_DEFUN([AM_PATH_LIBGCRYPT], min_libgcrypt_version="$tmp" fi - AC_MSG_CHECKING(for LIBGCRYPT - version >= $min_libgcrypt_version) - ok=no - if test "$LIBGCRYPT_CONFIG" != "no" ; then - req_major=`echo $min_libgcrypt_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` - req_minor=`echo $min_libgcrypt_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` - req_micro=`echo $min_libgcrypt_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'` - libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version` - major=`echo $libgcrypt_config_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` - minor=`echo $libgcrypt_config_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'` - micro=`echo $libgcrypt_config_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'` - if test "$major" -gt "$req_major"; then - ok=yes - else - if test "$major" -eq "$req_major"; then - if test "$minor" -gt "$req_minor"; then - ok=yes - else - if test "$minor" -eq "$req_minor"; then - if test "$micro" -ge "$req_micro"; then - ok=yes - fi - fi - fi - fi - fi - fi - if test $ok = yes; then - AC_MSG_RESULT([yes ($libgcrypt_config_version)]) - else - AC_MSG_RESULT(no) - fi + PKG_CHECK_MODULES(LIBGCRYPT, [libgcrypt >= $min_libgcrypt_version], [ok=yes], [ok=no]) + if test $ok = yes; then # If we have a recent libgcrypt, we should also check that the # API is compatible if test "$req_libgcrypt_api" -gt 0 ; then - tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0` + tmp=`$PKG_CONFIG --variable=api_version libgcrypt` if test "$tmp" -gt 0 ; then AC_MSG_CHECKING([LIBGCRYPT API version]) if test "$req_libgcrypt_api" -eq "$tmp" ; then @@ -116,10 +57,8 @@ AC_DEFUN([AM_PATH_LIBGCRYPT], fi fi if test $ok = yes; then - LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags` - LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs` ifelse([$2], , :, [$2]) - libgcrypt_config_host=`$LIBGCRYPT_CONFIG --host 2>/dev/null || echo none` + libgcrypt_config_host=`$PKG_CONFIG --variable=host libgcrypt` if test x"$libgcrypt_config_host" != xnone ; then if test x"$libgcrypt_config_host" != x"$host" ; then AC_MSG_WARN([[ @@ -134,8 +73,6 @@ AC_DEFUN([AM_PATH_LIBGCRYPT], fi fi else - LIBGCRYPT_CFLAGS="" - LIBGCRYPT_LIBS="" ifelse([$3], , :, [$3]) fi AC_SUBST(LIBGCRYPT_CFLAGS) diff --git a/src/libgcrypt.pc.in b/src/libgcrypt.pc.in new file mode 100644 index 0000000..2fc8f53 --- /dev/null +++ b/src/libgcrypt.pc.in @@ -0,0 +1,33 @@ +# Process this file with autoconf to produce a pkg-config metadata file. +# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation +# Author: Simon Josefsson +# +# This file is free software; as a special exception the author gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. +# +# This file is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +# API info +api_version=@LIBGCRYPT_CONFIG_API_VERSION@ +host=@LIBGCRYPT_CONFIG_HOST@ + +# Misc information. +symmetric_ciphers=@LIBGCRYPT_CIPHERS@ +asymmetric_ciphers=@LIBGCRYPT_PUBKEY_CIPHERS@ +digests=@LIBGCRYPT_DIGESTS@ + +Name: libgcrypt +Description: GNU crypto library +URL: http://www.gnupg.org +Version: @VERSION@ +Libs: -L${libdir} -lgcrypt +Libs.private: -L${libdir} -lgpg-error +Cflags: -I${includedir} -- 1.8.3.1