If neither `Pass' nor `PassCmd' is specified in the configuration,
mbsync(1) prompts for the IMAP password.
This diff adds the missing "tty" promise in such cases.
OK?
PS: Noone complaint so far.
Index: Makefile
===================================================================
RCS file: /cvs/ports/mail/isync/Makefile,v
retrieving revision 1.35
diff -u -p -r1.35 Makefile
--- Makefile 12 May 2018 14:37:36 -0000 1.35
+++ Makefile 18 May 2018 20:41:45 -0000
@@ -3,7 +3,7 @@
COMMENT= synchronize IMAP4 and maildir mailboxes
DISTNAME= isync-1.3.0
-REVISION= 1
+REVISION= 2
CATEGORIES= mail
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=isync/}
Index: patches/patch-src_drv_imap_c
===================================================================
RCS file: /cvs/ports/mail/isync/patches/patch-src_drv_imap_c,v
retrieving revision 1.1
diff -u -p -r1.1 patch-src_drv_imap_c
--- patches/patch-src_drv_imap_c 8 May 2018 22:07:42 -0000 1.1
+++ patches/patch-src_drv_imap_c 18 May 2018 19:20:51 -0000
@@ -3,21 +3,24 @@ $OpenBSD: patch-src_drv_imap_c,v 1.1 201
Index: src/drv_imap.c
--- src/drv_imap.c.orig
+++ src/drv_imap.c
-@@ -41,6 +41,8 @@
+@@ -41,6 +41,9 @@
# include <sasl/saslutil.h>
#endif
+extern int needs_proc_exec;
++extern int needs_tty;
+
#ifdef HAVE_LIBSSL
enum { SSL_None, SSL_STARTTLS, SSL_IMAPS };
#endif
-@@ -3267,6 +3269,8 @@ imap_parse_store( conffile_t *cfg, store_conf_t **stor
+@@ -3267,6 +3270,10 @@ imap_parse_store( conffile_t *cfg, store_conf_t **stor
}
acc_opt = 1;
}
+ if (server->sconf.tunnel || server->pass_cmd)
+ needs_proc_exec = 1;
++ if (!(server->pass || server->pass_cmd))
++ needs_tty = 1;
if (store)
type = "IMAP store", name = store->gen.name;
else
Index: patches/patch-src_main_c
===================================================================
RCS file: /cvs/ports/mail/isync/patches/patch-src_main_c,v
retrieving revision 1.3
diff -u -p -r1.3 patch-src_main_c
--- patches/patch-src_main_c 8 May 2018 22:07:42 -0000 1.3
+++ patches/patch-src_main_c 18 May 2018 20:29:01 -0000
@@ -3,40 +3,64 @@ $OpenBSD: patch-src_main_c,v 1.3 2018/05
Index: src/main.c
--- src/main.c.orig
+++ src/main.c
-@@ -120,6 +120,8 @@ PACKAGE " " VERSION " - mailbox synchronizer\n"
+@@ -120,6 +120,9 @@ PACKAGE " " VERSION " - mailbox synchronizer\n"
exit( code );
}
+int needs_proc_exec = 0;
++int needs_tty = 0;
+
static void ATTR_PRINTFLIKE(1, 2)
debug( const char *msg, ... )
{
-@@ -716,6 +718,29 @@ main( int argc, char **argv )
+@@ -716,6 +719,52 @@ main( int argc, char **argv )
if (load_config( config, pseudo ))
return 1;
+
+ if (mvars->list) {
+ if (needs_proc_exec) {
-+ if (pledge("stdio rpath inet flock dns getpw proc exec"
-+ " prot_exec", NULL) == -1)
-+ sys_error("pledge\n");
++ if (needs_tty) {
++ if (pledge("stdio rpath inet flock dns getpw"
++ " tty proc exec prot_exec", NULL) == -1)
++ sys_error("pledge\n");
++ } else {
++ if (pledge("stdio rpath inet flock dns getpw"
++ " proc exec prot_exec", NULL) == -1)
++ sys_error("pledge\n");
++ }
+ } else {
-+ if (pledge("stdio rpath inet flock dns getpw"
-+ " prot_exec",
-+ NULL) == -1)
-+ sys_error("pledge\n");
++ if (needs_tty) {
++ if (pledge("stdio rpath inet flock dns getpw"
++ " tty prot_exec", NULL) == -1)
++ sys_error("pledge\n");
++ } else {
++ if (pledge("stdio rpath inet flock dns getpw"
++ " prot_exec", NULL) == -1)
++ sys_error("pledge\n");
++ }
+ }
+ } else {
+ if (needs_proc_exec) {
-+ if (pledge("stdio rpath wpath cpath inet flock dns"
-+ " getpw proc exec prot_exec", NULL) == -1)
-+ sys_error("pledge\n");
++ if (needs_tty) {
++ if (pledge("stdio rpath wpath cpath inet flock"
++ " dns getpw tty proc exec prot_exec", NULL)
== -1)
++ sys_error("pledge\n");
++ } else {
++ if (pledge("stdio rpath wpath cpath inet flock"
++ " dns getpw proc exec prot_exec", NULL) ==
-1)
++ sys_error("pledge\n");
++ }
+ } else {
-+ if (pledge("stdio rpath wpath cpath inet flock dns"
-+ " getpw prot_exec", NULL) == -1)
-+ sys_error("pledge\n");
++ if (needs_tty) {
++ if (pledge("stdio rpath wpath cpath inet flock"
++ " dns getpw tty prot_exec", NULL) == -1)
++ sys_error("pledge\n");
++ } else {
++ if (pledge("stdio rpath wpath cpath inet flock"
++ " dns getpw prot_exec", NULL) == -1)
++ sys_error("pledge\n");
++ }
+ }
+ }