From 7b3a00cb0fc27c896dd85c9afc474bd9c2aea30d Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 10 May 2019 14:23:55 +0800 Subject: [PATCH] pkgconfig Update gpgme to use pkgconfig instead of -config files since its simpler and less error prone when cross compiling. Upstream-Status: Denied [Upstream not interested in pkg-config support] RP 2015/4/17 Signed-off-by: Richard Purdie Rebase to 1.13.0 Signed-off-by: Hongxu Jia Rebase to 1.17.0 Signed-off-by: Wang Mingyu --- configure.ac | 1 + src/Makefile.am | 4 +- src/gpgme-pthread.pc.in | 15 +++++ src/gpgme.m4 | 119 +++------------------------------------- src/gpgme.pc.in | 4 +- 5 files changed, 29 insertions(+), 114 deletions(-) create mode 100644 src/gpgme-pthread.pc.in diff --git a/configure.ac b/configure.ac index ae4c7da..df892c9 100644 --- a/configure.ac +++ b/configure.ac @@ -1112,6 +1112,7 @@ AC_CONFIG_FILES(Makefile src/Makefile src/gpgme-glib.pc src/gpgme.h) AC_CONFIG_FILES(src/gpgme-config, chmod +x src/gpgme-config) +AC_CONFIG_FILES(src/gpgme-pthread.pc) AC_CONFIG_FILES(lang/cpp/Makefile lang/cpp/src/Makefile) AC_CONFIG_FILES(lang/cpp/tests/Makefile) AC_CONFIG_FILES(lang/cpp/src/GpgmeppConfig-w32.cmake.in) diff --git a/src/Makefile.am b/src/Makefile.am index ca70950..bda5498 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -20,11 +20,11 @@ ## Process this file with automake to produce Makefile.in pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = gpgme.pc gpgme-glib.pc +pkgconfig_DATA = gpgme.pc gpgme-glib.pc gpgme-pthread.pc EXTRA_DIST = gpgme-config.in gpgme.m4 libgpgme.vers ChangeLog-2011 \ gpgme.h.in versioninfo.rc.in gpgme.def \ - gpgme.pc.in gpgme-glib.pc.in + gpgme.pc.in gpgme-glib.pc.in gpgme-pthread.pc.in if USE_GPGRT_CONFIG noinst_SCRIPTS = gpgme-config diff --git a/src/gpgme-pthread.pc.in b/src/gpgme-pthread.pc.in new file mode 100644 index 0000000..074bbf6 --- /dev/null +++ b/src/gpgme-pthread.pc.in @@ -0,0 +1,15 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +# API info +api_version=@GPGME_CONFIG_API_VERSION@ +host=@GPGME_CONFIG_HOST@ + +Name: gpgme +Description: GnuPG Made Easy (GPGME) is a C language library that allows to addsupport for cryptography to a program (deprecated) +Version: @VERSION@ +Libs: -L${libdir} -lgpgme -lpthread +Cflags: -I${includedir} +Requires: libassuan gpg-error diff --git a/src/gpgme.m4 b/src/gpgme.m4 index 8cc2898..0ff550e 100644 --- a/src/gpgme.m4 +++ b/src/gpgme.m4 @@ -168,7 +168,7 @@ dnl config script does not match the host specification the script dnl is added to the gpg_config_script_warn variable. dnl AC_DEFUN([AM_PATH_GPGME], -[ AC_REQUIRE([_AM_PATH_GPGME_CONFIG])dnl +[ tmp=ifelse([$1], ,1:0.4.2,$1) if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then req_gpgme_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` @@ -178,36 +178,12 @@ AC_DEFUN([AM_PATH_GPGME], min_gpgme_version="$tmp" fi - AC_MSG_CHECKING(for GPGME - version >= $min_gpgme_version) - ok=no - if test "$GPGME_CONFIG" != "no" ; then - req_major=`echo $min_gpgme_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` - req_minor=`echo $min_gpgme_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` - req_micro=`echo $min_gpgme_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'` - if test "$gpgme_version_major" -gt "$req_major"; then - ok=yes - else - if test "$gpgme_version_major" -eq "$req_major"; then - if test "$gpgme_version_minor" -gt "$req_minor"; then - ok=yes - else - if test "$gpgme_version_minor" -eq "$req_minor"; then - if test "$gpgme_version_micro" -ge "$req_micro"; then - ok=yes - fi - fi - fi - fi - fi - fi + PKG_CHECK_MODULES(GPGME, [gpgme >= $min_gpgme_version], [ok=yes], [ok=no]) if test $ok = yes; then # If we have a recent GPGME, we should also check that the # API is compatible. if test "$req_gpgme_api" -gt 0 ; then - tmp=`$GPGME_CONFIG --api-version 2>/dev/null || echo 0` + tmp=`$PKG_CONFIG --variable=api_version gpgme 2>/dev/null || echo 0` if test "$tmp" -gt 0 ; then if test "$req_gpgme_api" -ne "$tmp" ; then ok=no @@ -216,19 +192,11 @@ AC_DEFUN([AM_PATH_GPGME], fi fi if test $ok = yes; then - GPGME_CFLAGS=`$GPGME_CONFIG --cflags` - GPGME_LIBS=`$GPGME_CONFIG --libs` - AC_MSG_RESULT(yes) ifelse([$2], , :, [$2]) _AM_PATH_GPGME_CONFIG_HOST_CHECK else - GPGME_CFLAGS="" - GPGME_LIBS="" - AC_MSG_RESULT(no) ifelse([$3], , :, [$3]) fi - AC_SUBST(GPGME_CFLAGS) - AC_SUBST(GPGME_LIBS) ]) dnl AM_PATH_GPGME_PTHREAD([MINIMUM-VERSION, @@ -236,9 +204,8 @@ dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) dnl Test for libgpgme and define GPGME_PTHREAD_CFLAGS dnl and GPGME_PTHREAD_LIBS. dnl -AC_DEFUN([AM_PATH_GPGME_PTHREAD],[ - AC_OBSOLETE([$0], [; use AM_PATH_GPGME instead to use GPGME_CFLAGS and GPGME_LIBS])dnl - AC_REQUIRE([_AM_PATH_GPGME_CONFIG])dnl +AC_DEFUN([AM_PATH_GPGME_PTHREAD], +[ tmp=ifelse([$1], ,1:0.4.2,$1) if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then req_gpgme_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` @@ -248,40 +215,12 @@ AC_DEFUN([AM_PATH_GPGME_PTHREAD],[ min_gpgme_version="$tmp" fi - AC_MSG_CHECKING(for GPGME pthread - version >= $min_gpgme_version) - ok=no - if test "$GPGME_CONFIG" != "no" ; then - req_major=`echo $min_gpgme_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` - req_minor=`echo $min_gpgme_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` - req_micro=`echo $min_gpgme_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'` - if test "$gpgme_version_major" -gt "$req_major"; then - ok=yes - else - if test "$gpgme_version_major" -eq "$req_major"; then - if test "$gpgme_version_minor" -gt "$req_minor"; then - ok=yes - else - if test "$gpgme_version_minor" -eq "$req_minor"; then - if test "$gpgme_version_micro" -ge "$req_micro"; then - ok=yes - fi - fi - fi - fi - fi - fi + PKG_CHECK_MODULES(GPGME_PTHREAD, [gpgme-pthread >= $min_gpgme_version], [ok=yes], [ok=no]) if test $ok = yes; then # If we have a recent GPGME, we should also check that the # API is compatible. if test "$req_gpgme_api" -gt 0 ; then - if test -z "$use_gpgrt_config"; then - tmp=`$GPGME_CONFIG --api-version 2>/dev/null || echo 0` - else - tmp=`$GPGME_CONFIG --variable=api_version 2>/dev/null || echo 0` - fi + tmp=`$PKG_CONFIG --variable=api_version gpgme-pthread 2>/dev/null || echo 0` if test "$tmp" -gt 0 ; then if test "$req_gpgme_api" -ne "$tmp" ; then ok=no @@ -290,19 +229,11 @@ AC_DEFUN([AM_PATH_GPGME_PTHREAD],[ fi fi if test $ok = yes; then - GPGME_PTHREAD_CFLAGS=`$GPGME_CONFIG --cflags` - GPGME_PTHREAD_LIBS=`$GPGME_CONFIG --libs` - AC_MSG_RESULT(yes) ifelse([$2], , :, [$2]) _AM_PATH_GPGME_CONFIG_HOST_CHECK else - GPGME_PTHREAD_CFLAGS="" - GPGME_PTHREAD_LIBS="" - AC_MSG_RESULT(no) ifelse([$3], , :, [$3]) fi - AC_SUBST(GPGME_PTHREAD_CFLAGS) - AC_SUBST(GPGME_PTHREAD_LIBS) ]) @@ -321,36 +252,12 @@ AC_DEFUN([AM_PATH_GPGME_GLIB], min_gpgme_version="$tmp" fi - AC_MSG_CHECKING(for GPGME - version >= $min_gpgme_version) - ok=no - if test "$GPGME_CONFIG" != "no" ; then - req_major=`echo $min_gpgme_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` - req_minor=`echo $min_gpgme_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` - req_micro=`echo $min_gpgme_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'` - if test "$gpgme_version_major" -gt "$req_major"; then - ok=yes - else - if test "$gpgme_version_major" -eq "$req_major"; then - if test "$gpgme_version_minor" -gt "$req_minor"; then - ok=yes - else - if test "$gpgme_version_minor" -eq "$req_minor"; then - if test "$gpgme_version_micro" -ge "$req_micro"; then - ok=yes - fi - fi - fi - fi - fi - fi + PKG_CHECK_MODULES(GPGME_GLIB, [gpgme >= $min_gpgme_version glib-2.0], [ok=yes], [ok=no]) if test $ok = yes; then # If we have a recent GPGME, we should also check that the # API is compatible. if test "$req_gpgme_api" -gt 0 ; then - tmp=`$GPGME_CONFIG --api-version 2>/dev/null || echo 0` + tmp=`$PKG_CONFIG --variable=api_version gpgme 2>/dev/null || echo 0` if test "$tmp" -gt 0 ; then if test "$req_gpgme_api" -ne "$tmp" ; then ok=no @@ -359,17 +266,9 @@ AC_DEFUN([AM_PATH_GPGME_GLIB], fi fi if test $ok = yes; then - GPGME_GLIB_CFLAGS=`$GPGME_CONFIG --glib --cflags` - GPGME_GLIB_LIBS=`$GPGME_CONFIG --glib --libs` - AC_MSG_RESULT(yes) ifelse([$2], , :, [$2]) _AM_PATH_GPGME_CONFIG_HOST_CHECK else - GPGME_GLIB_CFLAGS="" - GPGME_GLIB_LIBS="" - AC_MSG_RESULT(no) ifelse([$3], , :, [$3]) fi - AC_SUBST(GPGME_GLIB_CFLAGS) - AC_SUBST(GPGME_GLIB_LIBS) ]) diff --git a/src/gpgme.pc.in b/src/gpgme.pc.in index 9ddef5c..932645b 100644 --- a/src/gpgme.pc.in +++ b/src/gpgme.pc.in @@ -9,6 +9,6 @@ Name: gpgme Description: GnuPG Made Easy to access GnuPG Requires.private: gpg-error, libassuan Version: @PACKAGE_VERSION@ -Cflags: @GPGME_CONFIG_CFLAGS@ -Libs: @GPGME_CONFIG_LIBS@ +Cflags: -I${includedir} +Libs: -L${libdir} -lgpgme URL: https://www.gnupg.org/software/gpgme/index.html