--- /dev/null
+TERMUX_PKG_HOMEPAGE=http://isync.sourceforge.net
+TERMUX_PKG_DESCRIPTION="IMAP and MailDir mailbox synchronizer"
+TERMUX_PKG_VERSION=1.3.0
+TERMUX_PKG_SRCURL=https://downloads.sourceforge.net/project/isync/isync/${TERMUX_PKG_VERSION}/isync-${TERMUX_PKG_VERSION}.tar.gz
+TERMUX_PKG_SHA256=8d5f583976e3119705bdba27fa4fc962e807ff5996f24f354957178ffa697c9c
+TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--without-sasl ac_cv_header_db=no"
+TERMUX_PKG_DEPENDS="readline, openssl"
+TERMUX_PKG_BUILD_DEPENDS="readline-dev, openssl-dev"
+
+termux_step_pre_configure() {
+ LDFLAGS+=" -lreadline"
+}
--- /dev/null
+diff -u -r ../isync-1.3.0.orig/src/compat/config.c ./src/compat/config.c
+--- ../isync-1.3.0.orig/src/compat/config.c 2017-10-01 17:42:35.000000000 +0900
++++ ./src/compat/config.c 2018-02-06 08:41:15.750006264 +0900
+@@ -451,7 +451,7 @@
+ goto gotstor;
+ box->local_store_path = my_strndup( path, pl );
+ /* derive a suitable name */
+- if (!strcmp( box->local_store_path, "/var/mail/" ) || !strcmp( box->local_store_path, "/var/spool/mail/" )) {
++ if (!strcmp( box->local_store_path, "@TERMUX_PREFIX@/var/mail/" ) || !strcmp( box->local_store_path, "@TERMUX_PREFIX@/var/spool/mail/" )) {
+ local_store = nfstrdup( "spool" );
+ } else if (!strcmp( box->local_store_path, "~/" )) {
+ local_store = nfstrdup( "home" );
+diff -u -r ../isync-1.3.0.orig/src/compat/main.c ./src/compat/main.c
+--- ../isync-1.3.0.orig/src/compat/main.c 2017-10-01 17:42:35.000000000 +0900
++++ ./src/compat/main.c 2018-02-06 08:41:15.750006264 +0900
+@@ -384,7 +384,7 @@
+ return 1;
+ }
+ } else {
+- strcpy( path2, "/tmp/mbsyncrcXXXXXX" );
++ strcpy( path2, "@TERMUX_PREFIX@/tmp/mbsyncrcXXXXXX" );
+ if ((fd = mkstemp( path2 )) < 0) {
+ sys_error( "Error: cannot create temporary config file" );
+ return 1;
+diff -u -r ../isync-1.3.0.orig/src/drv_imap.c ./src/drv_imap.c
+--- ../isync-1.3.0.orig/src/drv_imap.c 2017-10-01 17:42:35.000000000 +0900
++++ ./src/drv_imap.c 2018-02-06 08:41:15.750006264 +0900
+@@ -36,6 +36,9 @@
+ #include <time.h>
+ #include <sys/wait.h>
+
++#include <termios.h>
++#include <readline/readline.h>
++
+ #ifdef HAVE_LIBSASL
+ # include <sasl/sasl.h>
+ # include <sasl/saslutil.h>
+@@ -251,6 +254,33 @@
+ "Deleted",
+ };
+
++#ifdef __ANDROID__
++static char* getpass(const char *prompt) {
++ struct termios term_old, term_new;
++ int nread;
++
++ /* Turn echoing off and fail if we can't. */
++ if (tcgetattr (0, &term_old) != 0) {
++ return NULL;
++ }
++
++ term_new = term_old;
++ term_new.c_lflag &= ~ECHO;
++
++ if (tcsetattr (0, TCSAFLUSH, &term_new) != 0) {
++ return NULL;
++ }
++
++ /* Read the password. */
++ char *password = readline(prompt);
++
++ /* Restore terminal. */
++ (void) tcsetattr (0, TCSAFLUSH, &term_old);
++
++ return password;
++}
++#endif
++
+ static imap_cmd_t *
+ new_imap_cmd( int size )
+ {
+diff -u -r ../isync-1.3.0.orig/src/socket.c ./src/socket.c
+--- ../isync-1.3.0.orig/src/socket.c 2017-10-01 17:42:35.000000000 +0900
++++ ./src/socket.c 2018-02-06 08:41:15.750006264 +0900
+@@ -398,7 +398,7 @@
+ _exit( 127 );
+ close( a[0] );
+ close( a[1] );
+- execl( "/bin/sh", "sh", "-c", conf->tunnel, (char *)0 );
++ execl( "@TERMUX_PREFIX@/bin/sh", "sh", "-c", conf->tunnel, (char *)0 );
+ _exit( 127 );
+ }
+