From ee1421f7a7a9f31400ba992a5be52b88d20170c9 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Fri, 10 May 2019 14:18:04 +0800
Subject: [PATCH] Revert "build: Make gpgme.m4 use gpgrt-config with *.pc."

This reverts commit 60828a505a1c74fd34476c181df2a588ea6f9c83.

The oe-core does not support gpgrt-config, so revert it

Upstream-Status: Inappropriate [oe-core specific]

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>

---
 src/gpgme.m4 | 54 ++++++++--------------------------------------------
 1 file changed, 8 insertions(+), 46 deletions(-)

diff --git a/src/gpgme.m4 b/src/gpgme.m4
index f2906c1..8cc2898 100644
--- a/src/gpgme.m4
+++ b/src/gpgme.m4
@@ -125,24 +125,10 @@ AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl
      fi
   fi
 
-  use_gpgrt_config=""
-  if test x"$GPGRT_CONFIG" != x -a "$GPGRT_CONFIG" != "no"; then
-    if $GPGRT_CONFIG gpgme --exists; then
-      GPGME_CONFIG="$GPGRT_CONFIG gpgme"
-      AC_MSG_NOTICE([Use gpgrt-config as gpgme-config])
-      use_gpgrt_config=yes
-    fi
-  fi
-  if test -z "$use_gpgrt_config"; then
-    AC_PATH_PROG(GPGME_CONFIG, gpgme-config, no)
-  fi
+  AC_PATH_PROG(GPGME_CONFIG, gpgme-config, no)
 
   if test "$GPGME_CONFIG" != "no" ; then
-    if test -z "$use_gpgrt_config"; then
-      gpgme_version=`$GPGME_CONFIG --version`
-    else
-      gpgme_version=`$GPGME_CONFIG --modversion`
-    fi
+    gpgme_version=`$GPGME_CONFIG --version`
   fi
   gpgme_version_major=`echo $gpgme_version | \
                sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
@@ -155,16 +141,12 @@ AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl
 
 AC_DEFUN([_AM_PATH_GPGME_CONFIG_HOST_CHECK],
 [
-    if test -z "$use_gpgrt_config"; then
-      gpgme_config_host=`$GPGME_CONFIG --host 2>/dev/null || echo none`
-    else
-      gpgme_config_host=`$GPGME_CONFIG --variable=host 2>/dev/null || echo none`
-    fi
+    gpgme_config_host=`$GPGME_CONFIG --host 2>/dev/null || echo none`
     if test x"$gpgme_config_host" != xnone ; then
       if test x"$gpgme_config_host" != x"$host" ; then
   AC_MSG_WARN([[
 ***
-*** The config script "$GPGME_CONFIG" was
+*** The config script $GPGME_CONFIG was
 *** built for $gpgme_config_host and thus may not match the
 *** used host $host.
 *** You may want to use the configure option --with-gpgme-prefix
@@ -225,11 +207,7 @@ AC_DEFUN([AM_PATH_GPGME],
      # 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=`$GPGME_CONFIG --api-version 2>/dev/null || echo 0`
         if test "$tmp" -gt 0 ; then
            if test "$req_gpgme_api" -ne "$tmp" ; then
              ok=no
@@ -372,11 +350,7 @@ AC_DEFUN([AM_PATH_GPGME_GLIB],
      # 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=`$GPGME_CONFIG --api-version 2>/dev/null || echo 0`
         if test "$tmp" -gt 0 ; then
            if test "$req_gpgme_api" -ne "$tmp" ; then
              ok=no
@@ -385,20 +359,8 @@ AC_DEFUN([AM_PATH_GPGME_GLIB],
      fi
   fi
   if test $ok = yes; then
-    if test -z "$use_gpgrt_config"; then
-      GPGME_GLIB_CFLAGS=`$GPGME_CONFIG --glib --cflags`
-      GPGME_GLIB_LIBS=`$GPGME_CONFIG --glib --libs`
-    else
-      if $GPGRT_CONFIG gpgme-glib --exists; then
-        GPGME_CONFIG="$GPGRT_CONFIG gpgme-glib"
-        GPGME_GLIB_CFLAGS=`$GPGME_CONFIG --cflags`
-        GPGME_GLIB_LIBS=`$GPGME_CONFIG --libs`
-      else
-        ok = no
-      fi
-    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
