diff options
author | ticktock35 <ticktock35@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358> | 2008-12-14 23:21:31 (EST) |
---|---|---|
committer | ticktock35 <ticktock35@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358> | 2008-12-14 23:21:31 (EST) |
commit | c4e460e110a4451e7510ab56a6ee242f65cb0546 (patch) | |
tree | a692d6434a82adc3a9077071f669188d9ad95abf | |
parent | e2fd21015aeedba1a9936f46b185c41047ee034d (diff) |
opkg: make gpg support optional
git-svn-id: http://opkg.googlecode.com/svn/trunk@28 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
-rw-r--r-- | configure.ac | 74 | ||||
-rw-r--r-- | opkg_download.c | 6 |
2 files changed, 47 insertions, 33 deletions
diff --git a/configure.ac b/configure.ac index 3e1d0bb..3dd5dd9 100644 --- a/configure.ac +++ b/configure.ac @@ -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) diff --git a/opkg_download.c b/opkg_download.c index 2bdbb00..2f87eec 100644 --- a/opkg_download.c +++ b/opkg_download.c @@ -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 } |