opkg: make gpg support optional
authorticktock35 <ticktock35@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>
Mon, 15 Dec 2008 04:21:31 +0000 (04:21 +0000)
committerticktock35 <ticktock35@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>
Mon, 15 Dec 2008 04:21:31 +0000 (04:21 +0000)
git-svn-id: http://opkg.googlecode.com/svn/trunk@28 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358

configure.ac
opkg_download.c

index 3e1d0bb..3dd5dd9 100644 (file)
@@ -30,40 +30,48 @@ dnl **********
 dnl GPGME
 dnl **********
 
-ok="no"
-min_gpgme_version=1.0.0
-AC_PATH_PROG(GPGME_CONFIG, gpgme-config, "failed")
-if test $GPGME_CONFIG != "failed" ; then
-      AC_MSG_CHECKING(for GPGME - version >= $min_gpgme_version)
-      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/'`
-      gpgme_config_version=`$GPGME_CONFIG --version`
-      major=`echo $gpgme_config_version | \
-                 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
-      minor=`echo $gpgme_config_version | \
-                 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
-      micro=`echo $gpgme_config_version | \
-                sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
-
-       if test "$major" -eq "$req_major"; then
-          if test "$minor" -ge "$req_minor"; then
-            if test "$micro" -ge "$req_micro"; then
-              ok="yes"
+AC_ARG_ENABLE(gpg,
+    AC_HELP_STRING([--enable-gpg], [Enable signature checking with gpgme
+      [[default=yes]] ]),
+    [want_gpgme="$enableval"], [want_gpgme="yes"])
+
+if test "x$want_gpgme" = "xyes"; then
+  ok="no"
+  min_gpgme_version=1.0.0
+  AC_PATH_PROG(GPGME_CONFIG, gpgme-config, "failed")
+  if test $GPGME_CONFIG != "failed" ; then
+       AC_MSG_CHECKING(for GPGME - version >= $min_gpgme_version)
+       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/'`
+       gpgme_config_version=`$GPGME_CONFIG --version`
+       major=`echo $gpgme_config_version | \
+                  sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
+       minor=`echo $gpgme_config_version | \
+                  sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
+       micro=`echo $gpgme_config_version | \
+                  sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
+
+         if test "$major" -eq "$req_major"; then
+            if test "$minor" -ge "$req_minor"; then
+              if test "$micro" -ge "$req_micro"; then
+                ok="yes"
+              fi
             fi
-          fi
-       fi
-fi
-
-if test $ok = "yes"; then
-  GPGME_CFLAGS=`$GPGME_CONFIG --cflags`
-  GPGME_LIBS=`$GPGME_CONFIG --libs`
-  AC_MSG_RESULT(yes)
-else
-  AC_MSG_ERROR(GPGME $min_gpgme_version or later needed)
+         fi
+  fi
+
+  if test $ok = "yes"; then
+    GPGME_CFLAGS=`$GPGME_CONFIG --cflags`
+    GPGME_LIBS=`$GPGME_CONFIG --libs`
+    AC_MSG_RESULT(yes)
+    AC_DEFINE(HAVE_GPGME, 1, [Define if you want GPG support])
+  else
+    AC_MSG_ERROR(GPGME $min_gpgme_version or later needed)
+  fi
 fi
 
 AC_SUBST(GPGME_CFLAGS)
index 2bdbb00..2f87eec 100644 (file)
@@ -23,6 +23,7 @@
 #include "opkg.h"
 #include "opkg_download.h"
 #include "opkg_message.h"
+#include "opkg_state.h"
 
 #include "sprintf_alloc.h"
 #include "xsystem.h"
@@ -296,6 +297,7 @@ int opkg_prepare_url_for_install(opkg_conf_t *conf, const char *url, char **name
 int
 opkg_verify_file (char *text_file, char *sig_file)
 {
+#ifdef HAVE_GPGME
     int status = -1;
     gpgme_ctx_t ctx;
     gpgme_data_t sig, text;
@@ -335,4 +337,8 @@ opkg_verify_file (char *text_file, char *sig_file)
     gpgme_release (ctx);
 
     return status;
+#else
+    printf ("Signature check skipped because GPG support was not enabled in this build\n");
+    return 0;
+#endif
 }