summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2013-12-21 10:20:44 +0100
committerAllan McRae <allan@archlinux.org>2014-01-10 05:30:05 +0100
commit1d3b17e25124c6c38f994b5bdf1beceaec1f0049 (patch)
treedc83840a0d890237889893bc2273123ef6f50877
parent5097b162fc0dee03ce23b22fd58bf7d2bfd2ea5b (diff)
downloadpacman-1d3b17e25124c6c38f994b5bdf1beceaec1f0049.tar.gz
pacman-1d3b17e25124c6c38f994b5bdf1beceaec1f0049.tar.xz
Fix build with --disable-gpgme
The alpm_decode_signature function was made available for frontends to display signature information, but this required libalpm to be build with gpgme support. As that function did not require anything from gpgme, have it build unconditionally. Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--lib/libalpm/Makefile.am6
-rw-r--r--lib/libalpm/signing.c60
2 files changed, 31 insertions, 35 deletions
diff --git a/lib/libalpm/Makefile.am b/lib/libalpm/Makefile.am
index 67be2b1d..e60d570c 100644
--- a/lib/libalpm/Makefile.am
+++ b/lib/libalpm/Makefile.am
@@ -27,6 +27,7 @@ libalpm_la_SOURCES = \
alpm.h alpm.c \
alpm_list.h alpm_list.c \
backup.h backup.c \
+ base64.h base64.c \
be_local.c \
be_package.c \
be_sync.c \
@@ -60,11 +61,6 @@ libalpm_la_SOURCES += \
sha2.h sha2.c
endif
-if HAVE_LIBGPGME
-libalpm_la_SOURCES += \
- base64.h base64.c
-endif
-
libalpm_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION_INFO)
libalpm_la_CFLAGS = \
diff --git a/lib/libalpm/signing.c b/lib/libalpm/signing.c
index 816024f9..8ed8c14e 100644
--- a/lib/libalpm/signing.c
+++ b/lib/libalpm/signing.c
@@ -24,17 +24,46 @@
#if HAVE_LIBGPGME
#include <locale.h> /* setlocale() */
#include <gpgme.h>
-#include "base64.h"
#endif
/* libalpm */
#include "signing.h"
#include "package.h"
+#include "base64.h"
#include "util.h"
#include "log.h"
#include "alpm.h"
#include "handle.h"
+/**
+ * Decode a loaded signature in base64 form.
+ * @param base64_data the signature to attempt to decode
+ * @param data the decoded data; must be freed by the caller
+ * @param data_len the length of the returned data
+ * @return 0 on success, -1 on failure to properly decode
+ */
+
+int SYMEXPORT alpm_decode_signature(const char *base64_data,
+ unsigned char **data, size_t *data_len)
+{
+ size_t len = strlen(base64_data);
+ unsigned char *usline = (unsigned char *)base64_data;
+ /* reasonable allocation of expected length is 3/4 of encoded length */
+ size_t destlen = len * 3 / 4;
+ MALLOC(*data, destlen, goto error);
+ if(base64_decode(*data, &destlen, usline, len)) {
+ free(*data);
+ goto error;
+ }
+ *data_len = destlen;
+ return 0;
+
+error:
+ *data = NULL;
+ *data_len = 0;
+ return -1;
+}
+
#if HAVE_LIBGPGME
#define CHECK_ERR(void) do { \
if(gpg_err_code(gpg_err) != GPG_ERR_NO_ERROR) { goto gpg_error; } \
@@ -418,35 +447,6 @@ int _alpm_key_import(alpm_handle_t *handle, const char *fpr)
}
/**
- * Decode a loaded signature in base64 form.
- * @param base64_data the signature to attempt to decode
- * @param data the decoded data; must be freed by the caller
- * @param data_len the length of the returned data
- * @return 0 on success, -1 on failure to properly decode
- */
-
-int SYMEXPORT alpm_decode_signature(const char *base64_data,
- unsigned char **data, size_t *data_len)
-{
- size_t len = strlen(base64_data);
- unsigned char *usline = (unsigned char *)base64_data;
- /* reasonable allocation of expected length is 3/4 of encoded length */
- size_t destlen = len * 3 / 4;
- MALLOC(*data, destlen, goto error);
- if(base64_decode(*data, &destlen, usline, len)) {
- free(*data);
- goto error;
- }
- *data_len = destlen;
- return 0;
-
-error:
- *data = NULL;
- *data_len = 0;
- return -1;
-}
-
-/**
* Check the PGP signature for the given file path.
* If base64_sig is provided, it will be used as the signature data after
* decoding. If base64_sig is NULL, expect a signature file next to path