From 9aff3f1b344fc8666b14c57629162c2b9007cad8 Mon Sep 17 00:00:00 2001
From: Thibault Saunier <tsaunier@igalia.com>
Date: Fri, 29 Jun 2018 09:05:52 -0400
Subject: [PATCH] Use pkg-config to detect gpg-error

---
 m4/gpg-error.m4 | 88 +++++++------------------------------------------
 1 file changed, 12 insertions(+), 76 deletions(-)

diff --git a/m4/gpg-error.m4 b/m4/gpg-error.m4
index 1661204c..5f9f33c2 100644
--- a/m4/gpg-error.m4
+++ b/m4/gpg-error.m4
@@ -41,81 +41,17 @@ AC_DEFUN([AM_PATH_GPG_ERROR],
   AC_ARG_WITH(gpg-error-prefix,,
               [gpg_error_config_prefix="$withval"])
 
-  if test x"${GPG_ERROR_CONFIG}" = x ; then
-     if test x"${gpg_error_config_prefix}" != x ; then
-        GPG_ERROR_CONFIG="${gpg_error_config_prefix}/bin/gpg-error-config"
-     else
-       case "${SYSROOT}" in
-         /*)
-           if test -x "${SYSROOT}/bin/gpg-error-config" ; then
-             GPG_ERROR_CONFIG="${SYSROOT}/bin/gpg-error-config"
-           fi
-           ;;
-         '')
-           ;;
-          *)
-           AC_MSG_WARN([Ignoring \$SYSROOT as it is not an absolute path.])
-           ;;
-       esac
-     fi
-  fi
+  PKG_CHECK_MODULES([GPG_ERROR], [gpg-error], [
+    AC_DEFINE([HAVE_GPG_ERROR], [1], [Define if you have gpg-error library])
 
-  AC_PATH_PROG(GPG_ERROR_CONFIG, gpg-error-config, no)
-  min_gpg_error_version=ifelse([$1], ,0.0,$1)
-  AC_MSG_CHECKING(for GPG Error - version >= $min_gpg_error_version)
-  ok=no
-  if test "$GPG_ERROR_CONFIG" != "no" \
-     && test -f "$GPG_ERROR_CONFIG" ; then
-    req_major=`echo $min_gpg_error_version | \
-               sed 's/\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
-    req_minor=`echo $min_gpg_error_version | \
-               sed 's/\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
-    gpg_error_config_version=`$GPG_ERROR_CONFIG $gpg_error_config_args --version`
-    major=`echo $gpg_error_config_version | \
-               sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
-    minor=`echo $gpg_error_config_version | \
-               sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
-    if test "$major" -gt "$req_major"; then
-        ok=yes
-    else
-        if test "$major" -eq "$req_major"; then
-            if test "$minor" -ge "$req_minor"; then
-               ok=yes
-            fi
-        fi
-    fi
-  fi
-  if test $ok = yes; then
-    GPG_ERROR_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --cflags`
-    GPG_ERROR_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --libs`
-    GPG_ERROR_MT_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --cflags 2>/dev/null`
-    GPG_ERROR_MT_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --libs 2>/dev/null`
-    AC_MSG_RESULT([yes ($gpg_error_config_version)])
-    ifelse([$2], , :, [$2])
-    gpg_error_config_host=`$GPG_ERROR_CONFIG $gpg_error_config_args --host 2>/dev/null || echo none`
-    if test x"$gpg_error_config_host" != xnone ; then
-      if test x"$gpg_error_config_host" != x"$host" ; then
-  AC_MSG_WARN([[
-***
-*** The config script $GPG_ERROR_CONFIG was
-*** built for $gpg_error_config_host and thus may not match the
-*** used host $host.
-*** You may want to use the configure option --with-gpg-error-prefix
-*** to specify a matching config script or use \$SYSROOT.
-***]])
-        gpg_config_script_warn="$gpg_config_script_warn libgpg-error"
-      fi
-    fi
-  else
-    GPG_ERROR_CFLAGS=""
-    GPG_ERROR_LIBS=""
-    GPG_ERROR_MT_CFLAGS=""
-    GPG_ERROR_MT_LIBS=""
-    AC_MSG_RESULT(no)
-    ifelse([$3], , :, [$3])
-  fi
-  AC_SUBST(GPG_ERROR_CFLAGS)
-  AC_SUBST(GPG_ERROR_LIBS)
-  AC_SUBST(GPG_ERROR_MT_CFLAGS)
-  AC_SUBST(GPG_ERROR_MT_LIBS)
+    GPG_ERROR_MT_CFLAGS="$GPG_ERROR_CFLAGS"
+    GPG_ERROR_MT_LIBS="-lpthread $GPG_ERROR_LIBS"
+
+    AC_SUBST(GPG_ERROR_CFLAGS)
+    AC_SUBST(GPG_ERROR_LIBS)
+    AC_SUBST(GPG_ERROR_MT_CFLAGS)
+    AC_SUBST(GPG_ERROR_MT_LIBS)
+  ], [
+    AC_MSG_ERROR([$GPG_ERROR_ERRORS])
+  ])
 ])
-- 
2.18.0

