[PATCH/RFC V2 25/26] android: Add libstoken to build
Kevin Cernekee
cernekee at gmail.com
Sun Aug 11 21:49:26 EDT 2013
This was tested with NDK release r8e on ARM (on a real device) and
x86 (compile only).
Signed-off-by: Kevin Cernekee <cernekee at gmail.com>
---
android/0001-Remove-call-to-mlockall.patch | 33 +++++++++++++
android/Makefile | 69 +++++++++++++++++++++++++++-
2 files changed, 101 insertions(+), 1 deletion(-)
create mode 100644 android/0001-Remove-call-to-mlockall.patch
diff --git a/android/0001-Remove-call-to-mlockall.patch b/android/0001-Remove-call-to-mlockall.patch
new file mode 100644
index 0000000..c09afb6
--- /dev/null
+++ b/android/0001-Remove-call-to-mlockall.patch
@@ -0,0 +1,33 @@
+From aecf4b5e1bb335a41ea00c99c771dfa889ce314b Mon Sep 17 00:00:00 2001
+From: Kevin Cernekee <cernekee at gmail.com>
+Date: Sun, 11 Aug 2013 13:26:39 -0700
+Subject: [PATCH] Remove call to mlockall()
+
+This patch against v0.2 allows for building stoken on Android, without
+rerunning autotools.
+
+Signed-off-by: Kevin Cernekee <cernekee at gmail.com>
+---
+ src/common.c | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/src/common.c b/src/common.c
+index d2d22f1..4711696 100644
+--- a/src/common.c
++++ b/src/common.c
+@@ -331,12 +331,6 @@ int common_init(char *cmd)
+ struct securid_token *t;
+ int is_import = !strcmp(cmd, "import");
+
+- /*
+- * we don't actually scrub memory, but at least try to keep the seeds
+- * from being swapped out to disk
+- */
+- mlockall(MCL_CURRENT | MCL_FUTURE);
+-
+ cfg = xzalloc(sizeof(*cfg));
+ if (__stoken_read_rcfile(opt_rcfile, cfg, &warn) != ERR_NONE)
+ __stoken_zap_rcfile_data(cfg);
+--
+1.7.9.5
+
diff --git a/android/Makefile b/android/Makefile
index ba013ab..bdf04db 100644
--- a/android/Makefile
+++ b/android/Makefile
@@ -242,6 +242,73 @@ gnutls: $(GNUTLS_DEPS)
#####################################################################
#
+# Build libtomcrypt
+#
+TOMCRYPT_VER := 1.17
+TOMCRYPT_DIR := $(TRIPLET)/libtomcrypt-$(TOMCRYPT_VER)
+
+crypt-$(TOMCRYPT_VER).tar.bz2:
+ curl http://libtom.org/files/crypt-$(TOMCRYPT_VER).tar.bz2 -o $@.tmp && mv $@.tmp $@
+
+$(TOMCRYPT_DIR)/makefile: crypt-$(TOMCRYPT_VER).tar.bz2
+ mkdir -p $(TRIPLET)
+ tar xfj $< -C $(TRIPLET)
+ touch $@
+
+$(TOMCRYPT_DIR)/libtomcrypt.a: $(TOMCRYPT_DIR)/makefile
+ $(MAKE) -C $(TOMCRYPT_DIR) \
+ CC="$(TRIPLET)-gcc --sysroot=$(NDK_SYSROOT)" \
+ AR="$(TRIPLET)-ar" \
+ RANLIB="$(TRIPLET)-ranlib"
+
+$(OC_SYSROOT)/lib/libtomcrypt.a: $(TOMCRYPT_DIR)/libtomcrypt.a
+ $(MAKE) -C $(TOMCRYPT_DIR) \
+ DESTDIR=$(OC_SYSROOT) \
+ LIBPATH=/lib INCPATH=/include \
+ INSTALL_USER=$(shell id -u) \
+ INSTALL_GROUP=$(shell id -g) \
+ NODOCS=1 install
+
+TOMCRYPT_DEPS := $(OC_SYSROOT)/lib/libtomcrypt.a
+
+tomcrypt: $(TOMCRYPT_DEPS)
+
+
+#####################################################################
+#
+# Build libstoken
+#
+STOKEN_VER := 0.2
+STOKEN_SRC := sources/stoken-$(STOKEN_VER)
+STOKEN_BUILD := $(TRIPLET)/stoken
+
+stoken-$(STOKEN_VER).tar.gz:
+ curl -L http://sourceforge.net/projects/stoken/files/stoken-$(STOKEN_VER).tar.gz/download -o $@.tmp && mv $@.tmp $@
+
+$(STOKEN_SRC)/configure: stoken-$(STOKEN_VER).tar.gz
+ mkdir -p sources
+ tar xfz $< -C sources
+ cd $(STOKEN_SRC) && patch -p1 < ../../0001-Remove-call-to-mlockall.patch
+ touch $@
+
+$(STOKEN_BUILD)/Makefile: $(STOKEN_SRC)/configure $(TOMCRYPT_DEPS)
+ mkdir -p $(STOKEN_BUILD)
+ cd $(STOKEN_BUILD) && ../../$(STOKEN_SRC)/configure $(CONFIGURE_ARGS) \
+ --without-gtk
+
+$(STOKEN_BUILD)/libstoken.la: $(STOKEN_BUILD)/Makefile
+ $(MAKE) -C $(STOKEN_BUILD)
+
+$(OC_SYSROOT)/lib/libstoken.la: $(STOKEN_BUILD)/libstoken.la
+ $(MAKEINSTALL) -C $(STOKEN_BUILD) install
+
+STOKEN_DEPS := $(OC_SYSROOT)/lib/libstoken.la
+
+stoken: $(STOKEN_DEPS)
+
+
+#####################################################################
+#
# Build OpenConnect for Android
#
OPENCONNECT_SRC := ..
@@ -250,7 +317,7 @@ OPENCONNECT_BUILD := $(TRIPLET)/openconnect
$(OPENCONNECT_SRC)/configure:
cd $(OPENCONNECT_SRC) && ./autogen.sh
-$(OPENCONNECT_BUILD)/Makefile: $(GNUTLS_DEPS) $(LIBXML_DEPS) $(OPENCONNECT_SRC)/configure
+$(OPENCONNECT_BUILD)/Makefile: $(GNUTLS_DEPS) $(LIBXML_DEPS) $(STOKEN_DEPS) $(OPENCONNECT_SRC)/configure
mkdir -p $(OPENCONNECT_BUILD)
cd $(OPENCONNECT_BUILD) && ../../../configure $(CONFIGURE_ARGS) \
CFLAGS="--sysroot=$(NDK_SYSROOT) -DNO_BROKEN_DTLS_CHECK" \
--
1.7.9.5
More information about the openconnect-devel
mailing list