[commit] master: permit leading whitespace in INTERNALDATE strings

2024-02-07 Thread ossi via isync-devel
commit e70c300f7446ba6ec1259f459a0f0e1d2d592ed9
Author: Oswald Buddenhagen 
Date:   Wed Feb 7 11:19:41 2024 +0100

permit leading whitespace in INTERNALDATE strings

the BNF specifies "(SP DIGIT) / 2DIGIT" for the date-day-fixed symbol,
but "*SP 1*DIGIT" matches that closely enough for parsing purposes.

REFMAIL: cyydeevz8cct.2m1t7xkt45...@jonas.vautherin.ch

 src/drv_imap.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/drv_imap.c b/src/drv_imap.c
index ad95e3d..170e7fc 100644
--- a/src/drv_imap.c
+++ b/src/drv_imap.c
@@ -1031,7 +1031,7 @@ parse_date( const char *str )
struct tm datetime;
 
memset( &datetime, 0, sizeof(datetime) );
-   if (!(end = strptime( str, "%e-%b-%Y %H:%M:%S ", &datetime )))
+   if (!(end = strptime( str, " %e-%b-%Y %H:%M:%S ", &datetime )))
return -1;
if ((date = timegm( &datetime )) == -1)
return -1;


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: don't try to create already existing boxes

2024-07-31 Thread ossi via isync-devel
commit 84194a7a9fdd179ca15e4b069a3cffbeaec03bab
Author: Oswald Buddenhagen 
Date:   Tue Jan 10 11:37:26 2023 +0100

don't try to create already existing boxes

if the SELECT command fails even though the box was LISTed, then the
error cause is obviously not that box is absent, and so we should not
attempt to CREATE it.

 src/sync.c | 13 +++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/sync.c b/src/sync.c
index bff3684..c66370c 100644
--- a/src/sync.c
+++ b/src/sync.c
@@ -377,10 +377,13 @@ sync_boxes( store_t *ctx[], const char * const names[], 
int present[], channel_c
sync_ref( svars );
for (t = 0; ; t++) {
info( "Opening %s box %s...\n", str_fn[t], svars->orig_name[t] 
);
-   if (present[t] == BOX_ABSENT)
+   if (present[t] == BOX_ABSENT) {
box_confirmed2( svars, t );
-   else
+   } else {
+   if (present[t] == BOX_PRESENT)
+   svars->state[t] |= ST_PRESENT;
svars->drv[t]->open_box( ctx[t], box_confirmed, AUX );
+   }
if (t || check_cancel( svars ))
break;
}
@@ -399,6 +402,12 @@ box_confirmed( int sts, uint uidvalidity, void *aux )
if (sts == DRV_OK) {
svars->state[t] |= ST_PRESENT;
svars->newuidval[t] = uidvalidity;
+   } else if (svars->state[t] & ST_PRESENT) {
+   error( "Error: channel %s: %s box %s cannot be opened.\n",
+  svars->chan->name, str_fn[t], svars->orig_name[t] );
+   svars->ret |= SYNC_FAIL;
+   cancel_sync( svars );
+   return;
}
box_confirmed2( svars, t );
 }


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: Revert "actually implement imap_commit_cmds()"

2024-07-31 Thread ossi via isync-devel
commit 8b8313997c357238d85eb70e8fdee005c746eedf
Author: Oswald Buddenhagen 
Date:   Tue Jul 30 07:50:49 2024 +0200

Revert "actually implement imap_commit_cmds()"

the CHECK command doesn't do what i thought; the formulation in the
specs was ambiguous - it really checks for new mail, rather than
committing, and each operation is supposed to be atomic. inefficient,
but safe. IMAP4rev2 eliminates the command altogether, subsuming its
function under NOOP.

consequently, the commit callback doesn't make sense for imap.
in principle, we could use it to coalesce multiple STOREs to counter the
inefficiency, but that won't happen any time soon, and the
implementation would look rather differently anyway.

as a "side effect", this fixes an assertion failure in imap_close_box()
when all flag sets failed (e.g., b/c the box was read-only), as their
callbacks would be short-cut in front of the completion of the CHECK
command, which was not sequenced before the close_box() call.

This reverts commit cfaa4848dd7c72e628fcc81a4c4532c9be226144.

 src/drv_imap.c | 55 +++---
 1 file changed, 7 insertions(+), 48 deletions(-)

diff --git a/src/drv_imap.c b/src/drv_imap.c
index 170e7fc..681117e 100644
--- a/src/drv_imap.c
+++ b/src/drv_imap.c
@@ -163,8 +163,7 @@ union imap_store {
// Command queue
imap_cmd_t *pending, **pending_append;
imap_cmd_t *in_progress, **in_progress_append;
-   imap_cmd_t *wait_check, **wait_check_append;
-   int nexttag, num_in_progress, num_wait_check;
+   int nexttag, num_in_progress;
uint buffer_mem;  // Memory currently occupied by buffers in 
the queue
 
// Used during sequential operations like connect
@@ -204,7 +203,6 @@ union imap_store {
uint data_len; \
uint uid;  /* to identify fetch responses */ \
char high_prio;  /* if command is queued, put it at the front 
of the queue. */ \
-   char wait_check;  /* Don't report success until subsequent 
CHECK success. */ \
char to_trash;  /* we are storing to trash, not current. */ \
char create;  /* create the mailbox if we get an error which 
suggests so. */ \
char failok;  /* Don't complain about NO (@1) / BAD (@2) 
response. */ \
@@ -352,8 +350,6 @@ new_imap_cmd( uint size )
 static void
 done_imap_cmd( imap_store_t *ctx, imap_cmd_t *cmd, int response )
 {
-   if (cmd->param.wait_check)
-   ctx->num_wait_check--;
if (cmd->param.data) {
free( cmd->param.data );
cmd->param.data = NULL;
@@ -482,18 +478,6 @@ flush_imap_cmds( imap_store_t *ctx )
}
 }
 
-static void
-finalize_checked_imap_cmds( imap_store_t *ctx, int resp )
-{
-   imap_cmd_t *cmd;
-
-   while ((cmd = ctx->wait_check)) {
-   if (!(ctx->wait_check = cmd->next))
-   ctx->wait_check_append = &ctx->wait_check;
-   done_imap_cmd( ctx, cmd, resp );
-   }
-}
-
 static void
 cancel_pending_imap_cmds( imap_store_t *ctx )
 {
@@ -527,8 +511,6 @@ submit_imap_cmd( imap_store_t *ctx, imap_cmd_t *cmd )
assert( cmd );
assert( cmd->param.done );
 
-   if (cmd->param.wait_check)
-   ctx->num_wait_check++;
if ((ctx->pending && !cmd->param.high_prio) || !cmd_sendable( ctx, cmd 
)) {
if (ctx->pending && cmd->param.high_prio) {
cmd->next = ctx->pending;
@@ -1943,13 +1925,7 @@ imap_socket_read( void *aux )
imap_ref( ctx );
if (resp == RESP_CANCEL)
imap_invoke_bad_callback( ctx );
-   if (resp == RESP_OK && cmdp->param.wait_check) {
-   cmdp->next = NULL;
-   *ctx->wait_check_append = cmdp;
-   ctx->wait_check_append = &cmdp->next;
-   } else {
-   done_imap_cmd( ctx, cmdp, resp );
-   }
+   done_imap_cmd( ctx, cmdp, resp );
if (imap_deref( ctx ))
return;
if (ctx->canceling && !ctx->in_progress) {
@@ -1972,7 +1948,6 @@ get_cmd_result_p2( imap_store_t *ctx, imap_cmd_t *cmd, 
int response )
if (response != RESP_OK) {
done_imap_cmd( ctx, ocmd, response );
} else {
-   assert( !ocmd->param.wait_check );
ctx->uidnext = 1;
if (ocmd->param.to_trash)
ctx->trashnc = TrashKnown;
@@ -1993,7 +1968,6 @@ imap_cancel_store( store_t *gctx )
sasl_dispose( &ctx->sasl );
 #endif
socket_close( &ctx->conn );
-   finalize_checked_imap_cmds

[commit] master: remove redundant argument from BIT_FORMATTER_PROTO()

2024-07-31 Thread ossi via isync-devel
commit 31c504d43263a891b7a9d37517f9e26fb650d20b
Author: Oswald Buddenhagen 
Date:   Mon Jul 24 11:34:10 2023 +0200

remove redundant argument from BIT_FORMATTER_PROTO()

it doesn't need to know the enum prefix.

amends 17db5de0c & 950ebe833.

 src/common.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/common.h b/src/common.h
index 940e74d..9c44bce 100644
--- a/src/common.h
+++ b/src/common.h
@@ -212,12 +212,12 @@ void fmt_bits( uint bits, uint num_bits, const char 
*bit_str, const int *bit_off
 #define BIT_FORMATTER_RET(name, pfx) \
struct name##_str { char str[sizeof(pfx##__STRINGS)]; };
 
-#define BIT_FORMATTER_PROTO(name, pfx, storage) \
+#define BIT_FORMATTER_PROTO(name, storage) \
storage struct name##_str ATTR_OPTIMIZE  /* force RVO */ \
fmt_##name( uint bits )
 
 #define BIT_FORMATTER_IMPL(name, pfx, storage) \
-   BIT_FORMATTER_PROTO(name, pfx, storage) \
+   BIT_FORMATTER_PROTO(name, storage) \
{ \
static const char strings[] = pfx##__STRINGS; \
static const int offsets[] = { pfx##__OFFSETS }; \
@@ -233,7 +233,7 @@ void fmt_bits( uint bits, uint num_bits, const char 
*bit_str, const int *bit_off
 
 #define DECL_BIT_FORMATTER_FUNCTION(name, pfx) \
BIT_FORMATTER_RET(name, pfx) \
-   BIT_FORMATTER_PROTO(name, pfx, );
+   BIT_FORMATTER_PROTO(name, );
 
 #define DEF_BIT_FORMATTER_FUNCTION(name, pfx) \
BIT_FORMATTER_IMPL(name, pfx, )


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: cap readsz at buffer size

2024-07-31 Thread ossi via isync-devel
commit 12e30ce560c2b79f2de9ab7f44626063c0e7e2ff
Author: Oswald Buddenhagen 
Date:   Mon Jul 29 12:05:43 2024 +0200

cap readsz at buffer size

otherwise we may get negative comparison sizes, which the unsigned
arithmetic we use cannot represent. this would prevent buffer content
downshifting, resulting in prepare_read() erroring out.

amends 859b7dd.

REFMAIL: 87h740x2xe@wavexx.thregr.org
REFMAIL: ec0f6f2a-0151-46ad-865a-a6f77ad8e...@app.fastmail.com
REFMAIL: 87edk45p9o@b3l.xyz
REFMAIL: cyawiddgrht7.2ch3r3d6z3...@ferdinandy.com

 src/socket.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/socket.c b/src/socket.c
index 52cd7c2..afd3f18 100644
--- a/src/socket.c
+++ b/src/socket.c
@@ -908,8 +908,11 @@ socket_fill( conn_t *sock )
// IIR filter for tracking average size of bulk reads.
// We use this to optimize the free space at the end of the
// buffer, hence the factor of 1.5.
-   if (n >= MIN_BULK_READ)
+   if (n >= MIN_BULK_READ) {
sock->readsz = (sock->readsz * 3 + n * 3 / 2) / 4;
+   if (sock->readsz > sizeof(sock->buf))
+   sock->readsz = sizeof(sock->buf);
+   }
 
socket_filled( sock, (uint)n );
}


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: add tag files to .gitignore

2024-07-31 Thread ossi via isync-devel
commit 5f81162f5e93efa8a35bbad5aa0f5d279da3a9e7
Author: Husain Alshehhi 
AuthorDate: Sat Jan 14 01:06:23 2023 +
Commit: Oswald Buddenhagen 
CommitDate: Wed Jul 31 21:23:58 2024 +0200

add tag files to .gitignore

The auto-generated makefile targets CTAGS, GTAGS and TAGS generate files
locally that should not be checked-in into the source code. This change
adds these files to the .gitignore file. The list of files match those
in distclean-tags target.

 .gitignore | 12 
 AUTHORS|  1 +
 2 files changed, 13 insertions(+)

diff --git a/.gitignore b/.gitignore
index 74de561..6b9c837 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,3 +33,15 @@
 
 Makefile
 Makefile.in
+
+GPATH
+GRTAGS
+GSYMS
+GTAGS
+ID
+TAGS
+cscope.files
+cscope.in.out
+cscope.out
+cscope.po.out
+tags
diff --git a/AUTHORS b/AUTHORS
index 01af903..f13f596 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -82,6 +82,7 @@ Gergely Risko 
 Sung Pae "guns" 
 Helmut Grohne 
 Hugo Haas 
+Husain Alshehhi 
 Jaroslav Suchanek 
 Jeremie Courreges-Anglas 
 Klemens Nanni 


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: eliminate commit_cmds driver callback

2024-07-31 Thread ossi via isync-devel
commit 43271d8fad03c2cefd387a8cd80d578c2aa6fd34
Author: Oswald Buddenhagen 
Date:   Tue Jul 30 08:25:20 2024 +0200

eliminate commit_cmds driver callback

no driver implements it, and this isn't likely to change any time soon.

 src/driver.h |  3 ---
 src/drv_imap.c   |  9 -
 src/drv_maildir.c|  7 ---
 src/drv_proxy.c  | 38 +++---
 src/drv_proxy_gen.pl |  1 -
 src/sync.c   |  1 -
 6 files changed, 7 insertions(+), 52 deletions(-)

diff --git a/src/driver.h b/src/driver.h
index d3068bc..f7c5b95 100644
--- a/src/driver.h
+++ b/src/driver.h
@@ -295,9 +295,6 @@ struct driver {
void (*cancel_cmds)( store_t *ctx,
 void (*cb)( void *aux ), void *aux );
 
-   /* Commit any pending set_msg_flags() commands. */
-   void (*commit_cmds)( store_t *ctx );
-
/* Get approximate amount of memory occupied by the driver. */
uint (*get_memory_usage)( store_t *ctx );
 
diff --git a/src/drv_imap.c b/src/drv_imap.c
index 681117e..5b67535 100644
--- a/src/drv_imap.c
+++ b/src/drv_imap.c
@@ -3653,14 +3653,6 @@ imap_cancel_cmds( store_t *gctx,
}
 }
 
-/*** imap_commit_cmds ***/
-
-static void
-imap_commit_cmds( store_t *gctx )
-{
-   (void)gctx;
-}
-
 /*** imap_get_memory_usage ***/
 
 static uint
@@ -4039,7 +4031,6 @@ struct driver imap_driver = {
imap_trash_msg,
imap_close_box,
imap_cancel_cmds,
-   imap_commit_cmds,
imap_get_memory_usage,
imap_get_fail_state,
 };
diff --git a/src/drv_maildir.c b/src/drv_maildir.c
index cdffc32..847bc06 100644
--- a/src/drv_maildir.c
+++ b/src/drv_maildir.c
@@ -1853,12 +1853,6 @@ maildir_cancel_cmds( store_t *gctx ATTR_UNUSED,
cb( aux );
 }
 
-static void
-maildir_commit_cmds( store_t *gctx )
-{
-   (void) gctx;
-}
-
 static uint
 maildir_get_memory_usage( store_t *gctx ATTR_UNUSED )
 {
@@ -1983,7 +1977,6 @@ struct driver maildir_driver = {
maildir_trash_msg,
maildir_close_box,
maildir_cancel_cmds,
-   maildir_commit_cmds,
maildir_get_memory_usage,
maildir_get_fail_state,
 };
diff --git a/src/drv_proxy.c b/src/drv_proxy.c
index 37dbc34..ffe2e06 100644
--- a/src/drv_proxy.c
+++ b/src/drv_proxy.c
@@ -21,7 +21,6 @@ typedef union proxy_store {
driver_t *real_driver;
store_t *real_store;
gen_cmd_t *pending_cmds, **pending_cmds_append;
-   gen_cmd_t *check_cmds, **check_cmds_append;
wakeup_t wakeup;
uint fake_nextuid;
char is_fake;  // Was "created" by dry-run
@@ -91,42 +90,25 @@ proxy_wakeup( void *aux )
 }
 
 static void
-proxy_invoke( gen_cmd_t *cmd, int checked, const char *name )
+proxy_invoke( gen_cmd_t *cmd, const char *name )
 {
proxy_store_t *ctx = cmd->ctx;
if (ctx->force_async) {
-   debug( "%s[% 2d] Queue %s%s\n", ctx->label, cmd->tag, name, 
checked ? " (checked)" : "" );
+   debug( "%s[% 2d] Queue %s\n", ctx->label, cmd->tag, name );
cmd->next = NULL;
-   if (checked) {
-   *ctx->check_cmds_append = cmd;
-   ctx->check_cmds_append = &cmd->next;
-   } else {
-   *ctx->pending_cmds_append = cmd;
-   ctx->pending_cmds_append = &cmd->next;
-   conf_wakeup( &ctx->wakeup, 0 );
-   }
+   *ctx->pending_cmds_append = cmd;
+   ctx->pending_cmds_append = &cmd->next;
+   conf_wakeup( &ctx->wakeup, 0 );
} else {
cmd->queued_cb( cmd );
proxy_cmd_done( cmd );
}
 }
 
-static void
-proxy_flush_checked_cmds( proxy_store_t *ctx )
-{
-   if (ctx->check_cmds) {
-   *ctx->pending_cmds_append = ctx->check_cmds;
-   ctx->pending_cmds_append = ctx->check_cmds_append;
-   ctx->check_cmds_append = &ctx->check_cmds;
-   ctx->check_cmds = NULL;
-   conf_wakeup( &ctx->wakeup, 0 );
-   }
-}
-
 static void
 proxy_cancel_queued_cmds( proxy_store_t *ctx )
 {
-   if (ctx->pending_cmds || ctx->check_cmds) {
+   if (ctx->pending_cmds) {
// This would involve directly invoking the result callbacks 
with
// DRV_CANCEL, for which we'd need another set of dispatch 
functions.
// The autotest doesn't need that, so save the effort.
@@ -253,7 +235,7 @@ static @type@proxy_@name@( store_t *gctx@decl_args@, void 
(*cb)( @decl_cb_args@v
cmd->callback = cb;
cmd->callback_aux = aux;
@assign_state@
-   proxy_invoke( &cmd->gen, @checked@, "@name@" );
+   proxy_invoke( &cmd->gen, "@name@" );
 }
 //# END
 
@@ -382,7 +364,6 @@ static @type@proxy_@name@( store_t *gctx@decl_args@, void 
(*cb)( @decl_c

[commit] master: update some email addresses

2024-07-31 Thread ossi via isync-devel
commit 7bca6967a7b22cc2afe72856f340097651afe70e
Author: Oswald Buddenhagen 
Date:   Sat Sep 3 22:46:41 2022 +0200

update some email addresses

noa's and jeremy's new address are confirmed.
michael e.'s address is kinda confirmed, except that it's silent.

 AUTHORS | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/AUTHORS b/AUTHORS
index f13f596..024f512 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -13,7 +13,7 @@ Lead Developers
 Oswald Buddenhagen 
 - Current maintainer
 
-Michael Elkins 
+Michael Elkins 
 - Original author
 
 Contributors
@@ -22,10 +22,10 @@ Contributors
 (Some of these people also contributed bugfixes and optimizations.)
 (In chronological order.)
 
-Jeremy Katz 
+Jeremy Katz 
 - UseNamespace & UseSSL* options
 
-Daniel Resare 
+Noa (ex. Daniel) Resare 
 - Numerous SSL handling improvements
 
 Eivind Eklund 


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: don't try to qsort() NULL array

2024-07-31 Thread ossi via isync-devel
commit ceb0fa9803b27057c7a8413cf50a51f428f5d792
Author: Oswald Buddenhagen 
Date:   Thu Jul 4 09:09:17 2024 +0200

don't try to qsort() NULL array

while this actually works due to the array size being zero, it's
undefined behavior which makes gcc eliminate a subsequent null check in
the calling function.

 src/main_sync.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/main_sync.c b/src/main_sync.c
index 226e324..fff944c 100644
--- a/src/main_sync.c
+++ b/src/main_sync.c
@@ -186,7 +186,8 @@ filter_boxes( string_list_t *boxes, const char *prefix, 
string_list_t *patterns
boxarr[num] = NULL;
}
}
-   qsort( boxarr, num, sizeof(*boxarr), cmp_box_names );
+   if (boxarr)
+   qsort( boxarr, num, sizeof(*boxarr), cmp_box_names );
return boxarr;
 }
 


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: generalize GPL exception

2024-07-31 Thread ossi via isync-devel
commit f467b57a957672a02cd7d923603a8a9da7f0f9fc
Author: Oswald Buddenhagen 
Date:   Sun Jun 26 12:59:44 2022 +0200

generalize GPL exception

we have explicit approval from:
- Anton Khirnov 
- Jeremy Katz 
- Jesse Weaver 
- Marc Hoersken 
- Michael J Gruber 
- Noa Resare  (formerly Daniel)
- Oliver Runge 
- Patrick Steinhardt 
- Theodore Ts'o 

notably missing approval from:
- Michael Elkins 

further missing approval from:
- Eivind Eklund 
- Georgy Kibardin 
- Jack Stone 
- Jan Synacek 

still, because
- isync already contains an exception for OpenSSL,
- every contributor implicitly agreed to that exception, and
- that exception exists specifically because of the advertising clause
  in OpenSSL < v3's license,
i'm assuming that the MIA contributors are actually fine with the
proposed change.

 LICENSES/LicenseRef-isync-GPL-exception.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/LICENSES/LicenseRef-isync-GPL-exception.txt 
b/LICENSES/LicenseRef-isync-GPL-exception.txt
index 894d89c..741e349 100644
--- a/LICENSES/LicenseRef-isync-GPL-exception.txt
+++ b/LICENSES/LicenseRef-isync-GPL-exception.txt
@@ -8,5 +8,5 @@ Usage-Guide:
 SPDX-License-Identifier:  WITH LicenseRef-isync-GPL-exception
 License-Text:
 
-As a special exception, mbsync may be linked with the OpenSSL library,
-despite that library's more restrictive license.
+As a special exception, mbsync may be linked with libraries with a more
+restrictive license if the only incompatibility are advertising clauses.


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: revamp automatic enumeration of power-of-two enumerators

2024-07-31 Thread ossi via isync-devel
commit ee832951e2bc2030abe49b1436760a597bd55382
Author: Oswald Buddenhagen 
Date:   Mon Jul 24 12:04:13 2023 +0200

revamp automatic enumeration of power-of-two enumerators

i found a neat trick to do it with the C pre-processor after all.
this makes the enum definitions themselves arguably somewhat less
legible, but on the upside the build system becomes simpler, and IDEs
can build/update their code models without having to (re-)build the
project first.

somewhat as a side effect, this gives bit enums proper names, so we
don't need to refer to them by cryptic prefixes anymore.

amends 6a78e2c5f.

 src/.gitignore  |   1 -
 src/Makefile.am |  26 +
 src/bit_enum_gen.pl |  70 ---
 src/common.h| 131 ++--
 src/config.c|   2 +-
 src/driver.h|  83 ++--
 src/drv_imap.c  |   2 +-
 src/drv_proxy.c |   2 +-
 src/sync.c  |  37 ++---
 src/sync.h  |  57 ++-
 src/sync_p.h|  43 ---
 src/sync_state.c|   2 +-
 12 files changed, 207 insertions(+), 249 deletions(-)

diff --git a/src/.gitignore b/src/.gitignore
index 3139876..dea9ee7 100644
--- a/src/.gitignore
+++ b/src/.gitignore
@@ -1,4 +1,3 @@
-/*_enum.h
 /drv_proxy.inc
 /mbsync
 /mdconvert
diff --git a/src/Makefile.am b/src/Makefile.am
index 69cf29d..42d14f4 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -20,28 +20,6 @@ drv_proxy.$(OBJEXT): drv_proxy.inc
 drv_proxy.inc: $(srcdir)/driver.h $(srcdir)/drv_proxy.c 
$(srcdir)/drv_proxy_gen.pl
perl $(srcdir)/drv_proxy_gen.pl $(srcdir)/driver.h 
$(srcdir)/drv_proxy.c drv_proxy.inc
 
-ENUM_GEN = $(srcdir)/bit_enum_gen.pl
-
-$(mbsync_OBJECTS): common_enum.h
-common_enum.h: common.h $(ENUM_GEN)
-   perl $(ENUM_GEN) < $< > $@
-
-$(mbsync_OBJECTS): driver_enum.h
-driver_enum.h: driver.h $(ENUM_GEN)
-   perl $(ENUM_GEN) < $< > $@
-
-$(mbsync_OBJECTS): sync_enum.h
-sync_enum.h: sync.h $(ENUM_GEN)
-   perl $(ENUM_GEN) < $< > $@
-
-sync.$(OBJEXT): sync_c_enum.h
-sync_c_enum.h: sync.c $(ENUM_GEN)
-   perl $(ENUM_GEN) < $< > $@
-
-sync.$(OBJEXT) sync_state.$(OBJEXT): sync_p_enum.h
-sync_p_enum.h: sync_p.h $(ENUM_GEN)
-   perl $(ENUM_GEN) < $< > $@
-
 mdconvert_SOURCES = mdconvert.c
 mdconvert_LDADD = $(DB_LIBS)
 if with_mdconvert
@@ -69,6 +47,6 @@ EXTRA_PROGRAMS = tst_timers
 exampledir = $(docdir)/examples
 example_DATA = mbsyncrc.sample
 
-EXTRA_DIST = bit_enum_gen.pl drv_proxy_gen.pl run-tests.pl $(example_DATA) 
$(man_MANS)
+EXTRA_DIST = drv_proxy_gen.pl run-tests.pl $(example_DATA) $(man_MANS)
 
-CLEANFILES = *_enum.h drv_proxy.inc
+CLEANFILES = drv_proxy.inc
diff --git a/src/bit_enum_gen.pl b/src/bit_enum_gen.pl
deleted file mode 100755
index 2b1ee21..000
--- a/src/bit_enum_gen.pl
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/usr/bin/perl
-#
-# SPDX-FileCopyrightText: 2022 Oswald Buddenhagen 
-# SPDX-License-Identifier: GPL-2.0-or-later
-#
-# mbsync - mailbox synchronizer
-#
-
-use strict;
-use warnings;
-
-my $in_enum = 0;
-my $conts;
-while (<>) {
-   s,\s*(?://.*)?$,,;
-   if ($in_enum) {
-   if (/^\)$/) {
-   $conts =~ s/\s//g;
-   $conts =~ s/,$//;
-   my @vals = split(/,/, $conts);
-   my ($pfx, $pfx1);
-   for my $e (@vals) {
-   if (!defined($pfx)) {
-   $pfx1 = $pfx = ($e =~ /^([A-Z]+_)/) ? 
$1 : "";
-   } elsif (length($pfx)) {
-   $pfx = "" if ((($e =~ /^([A-Z]+_)/) ? 
$1 : "") ne $pfx);
-   }
-   }
-   my $bit = 1;
-   my $bitn = 0;
-   my (@names, @nameos);
-   my $nameo = 0;
-   for my $e (@vals) {
-   my $bits = ($e =~ s/\((\d+)\)$//) ? $1 : 1;
-   my $n = substr($e, length($pfx));
-   if ($bits != 1) {
-   die("Unsupported field size $bits\n") 
if ($bits != 2);
-   print "#define $e(b) ($bit << (b))\n";
-   push @names, "F-".$n, "N-".$n;
-   my $nl = length($n) + 3;
-   push @nameos, $nameo, $nameo + $nl;
-   $nameo += $nl * 2;
-   } else {
-   print "#define $e $bit\n";
-   push @names, $n;
-   push @nameos, $nameo;
-   $nameo += length($n) + 1;
-   }
-   

[commit] branch 'wip/gpl-exception' deleted

2024-08-01 Thread ossi via isync-devel
The branch 'wip/gpl-exception', previously at 28a4636, has been
deleted.


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: generalize AUTHORS section of man page

2024-08-02 Thread ossi via isync-devel
commit 4279aea6a0bb27c6998dadfa77e0c3435a09407e
Author: Oswald Buddenhagen 
Date:   Fri Aug 2 10:03:11 2024 +0200

generalize AUTHORS section of man page

 src/mbsync.1.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mbsync.1.in b/src/mbsync.1.in
index 89c7a4a..759dbf1 100644
--- a/src/mbsync.1.in
+++ b/src/mbsync.1.in
@@ -884,4 +884,4 @@ 
http://www.iana.org/assignments/sasl-mechanisms/sasl-mechanisms.xhtml
 .SH AUTHORS
 Originally written by Michael R. Elkins,
 rewritten and currently maintained by Oswald Buddenhagen,
-contributions by Theodore Y. Ts'o.
+contributions by many others; see the AUTHORS file for details.


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: automate setting package version

2024-08-02 Thread ossi via isync-devel
commit 8421b3cb223eced0e07ae65eaf21486d22beb573
Author: Oswald Buddenhagen 
Date:   Fri Aug 2 09:56:02 2024 +0200

automate setting package version

this avoids the need for bumping the version, which is particularly
helpful if one doesn't know yet whether the next release will be a
patch, minor, or major.

we cache the version extracted from git, which also provides a fallback
for the case of somebody rebuilding configure from a tar-ball.

note that it's impossible to determine the version at configure time, so
after git-tagging you need to remember to run version.sh (or autoconf)
prior to rolling a tar-ball.

 .gitignore   |  1 +
 Makefile.am  |  2 +-
 configure.ac |  3 ++-
 version.sh   | 36 
 4 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/.gitignore b/.gitignore
index 6b9c837..66a12ec 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
 /.autoconf_trace
 /ChangeLog
 /INSTALL
+/VERSION
 /autom4te.cache/
 /aclocal.m4
 /autodefs.h
diff --git a/Makefile.am b/Makefile.am
index 901b4a5..79067cb 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -4,7 +4,7 @@
 
 SUBDIRS = src
 bin_SCRIPTS = mbsync-get-cert
-EXTRA_DIST = LICENSES debian isync.spec $(bin_SCRIPTS)
+EXTRA_DIST = LICENSES VERSION debian isync.spec $(bin_SCRIPTS)
 
 LOG_PL = \
 use POSIX qw(strftime); \
diff --git a/configure.ac b/configure.ac
index ee74d96..41670ca 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,8 @@
 # SPDX-FileCopyrightText: 2002-2022 Oswald Buddenhagen 
 dnl SPDX-License-Identifier: GPL-2.0-or-later
 
-AC_INIT([isync], [1.5.0])
+m4_syscmd([./version.sh])
+AC_INIT([isync], m4_include([VERSION]))
 AC_CONFIG_HEADERS([autodefs.h])
 
 AC_CANONICAL_TARGET
diff --git a/version.sh b/version.sh
new file mode 100755
index 000..fc1ed7d
--- /dev/null
+++ b/version.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+# SPDX-FileCopyrightText: (C) 2024 Oswald Buddenhagen 
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+cd $(dirname $0)
+
+test -e .git || exit
+
+mb=$(git merge-base HEAD "@{upstream}" 2> /dev/null)
+if test -z "$mb"; then
+   # we presume that a failure to find a merge base means no upstream.
+   # and no upstream may mean detached head in the middle of a rebase
+   br=$(git branch | sed -n -e 's/^\* (no branch, rebasing 
\([^\)]*\))$/\1/p')
+   if test -n "$br"; then
+   mb=$(git merge-base HEAD "$br@{upstream}" 2> /dev/null)
+   fi
+fi
+if test -z "$mb"; then
+   # still no upstream, so just describe HEAD as-is.
+   gver=$(git describe --tags HEAD)
+else
+   # find out whether we have local work, and if so, collapse it into
+   # a single suffix. otherwise, we'd cause pointless rebuilds during
+   # development.
+   gver=$(git describe --tags $mb)
+   lcl=$(git rev-list -n 1 $mb..HEAD)
+   if test -n "$lcl"; then
+   gver="$gver-plus"
+   fi
+fi
+gver=${gver#v}
+pgver=$(cat VERSION 2> /dev/null)
+if [ "x$gver" != "x$pgver" ]; then
+   echo "$gver" > VERSION
+fi
+


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: substitute version and date in man pages

2024-08-02 Thread ossi via isync-devel
commit 6fbbcbb2c76a3b56e07e2ed4240506cb94973d45
Author: Oswald Buddenhagen 
Date:   Fri Aug 2 10:14:26 2024 +0200

substitute version and date in man pages

this shortens the release checklist and reduces commit churn.

for the date we use configure's timestamp. this should reflect the
package's creation time and be consistent with the version.

 configure.ac| 5 -
 src/.gitignore  | 2 ++
 src/Makefile.am | 5 -
 src/{mbsync.1 => mbsync.1.in}   | 2 +-
 src/{mdconvert.1 => mdconvert.1.in} | 2 +-
 5 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/configure.ac b/configure.ac
index 41670ca..2555ce5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -251,7 +251,10 @@ if test "x$have_macos_keychain" != xno; then
 AC_SUBST(KEYCHAIN_LIBS, 
["-Wl,-framework,Security,-framework,CoreFoundation"])
 fi
 
-AC_CONFIG_FILES([Makefile src/Makefile isync.spec])
+RELEASE_DATE=`date -r $0 +%F`
+AC_SUBST(RELEASE_DATE)
+
+AC_CONFIG_FILES([Makefile src/Makefile src/mbsync.1 src/mdconvert.1 
isync.spec])
 AC_OUTPUT
 
 AC_MSG_RESULT()
diff --git a/src/.gitignore b/src/.gitignore
index dea9ee7..a80a371 100644
--- a/src/.gitignore
+++ b/src/.gitignore
@@ -1,6 +1,8 @@
 /drv_proxy.inc
 /mbsync
+/mbsync.1
 /mdconvert
+/mdconvert.1
 /tst_imap_msgs
 /tst_imap_utf7
 /tst_msg_cvt
diff --git a/src/Makefile.am b/src/Makefile.am
index 42d14f4..d6e0407 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -27,7 +27,10 @@ mdconvert_prog = mdconvert
 mdconvert_man = mdconvert.1
 endif
 
+in_man = mbsync.1.in mdconvert.1.in
+
 bin_PROGRAMS = mbsync $(mdconvert_prog)
+# don't forget to update AC_CONFIG_FILES in configure.ac!
 man_MANS = mbsync.1 $(mdconvert_man)
 
 tst_imap_msgs_SOURCES = tst_imap_msgs.c imap_msgs.c util.c
@@ -47,6 +50,6 @@ EXTRA_PROGRAMS = tst_timers
 exampledir = $(docdir)/examples
 example_DATA = mbsyncrc.sample
 
-EXTRA_DIST = drv_proxy_gen.pl run-tests.pl $(example_DATA) $(man_MANS)
+EXTRA_DIST = drv_proxy_gen.pl run-tests.pl $(example_DATA) $(in_man)
 
 CLEANFILES = drv_proxy.inc
diff --git a/src/mbsync.1 b/src/mbsync.1.in
similarity index 99%
rename from src/mbsync.1
rename to src/mbsync.1.in
index 939c8c5..89c7a4a 100644
--- a/src/mbsync.1
+++ b/src/mbsync.1.in
@@ -4,7 +4,7 @@
 .\"
 .\" mbsync - mailbox synchronizer
 .
-.TH mbsync 1 "2022 Jun 16"
+.TH mbsync 1 @RELEASE_DATE@ "@PACKAGE_STRING@" "User Commands"
 .
 .SH NAME
 mbsync - synchronize IMAP4 and Maildir mailboxes
diff --git a/src/mdconvert.1 b/src/mdconvert.1.in
similarity index 93%
rename from src/mdconvert.1
rename to src/mdconvert.1.in
index b616841..e8800d9 100644
--- a/src/mdconvert.1
+++ b/src/mdconvert.1.in
@@ -3,7 +3,7 @@
 .\"
 .\" mdconvert - Maildir mailbox UID storage scheme converter
 .
-.TH mdconvert 1 "2004 Mar 27"
+.TH mdconvert 1 @RELEASE_DATE@ "@PACKAGE_STRING@" "User Commands"
 .
 .SH NAME
 mdconvert - Maildir mailbox UID storage scheme converter


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] tag 'v1.5.0' created

2024-08-02 Thread ossi via isync-devel
The tag 'v1.5.0' has been created at 4279aea.


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: fix initial build from git

2024-08-06 Thread ossi via isync-devel
commit 4c2031d616f92bd7437fdb34cf4eafa0840c84bd
Author: Oswald Buddenhagen 
Date:   Tue Aug 6 09:33:31 2024 +0200

fix initial build from git

we need to ignore the absence of VERSION, as aclocal executes the
include() while ignoring the prior m4_syscmd().

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 2555ce5..7f1fc6e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@
 dnl SPDX-License-Identifier: GPL-2.0-or-later
 
 m4_syscmd([./version.sh])
-AC_INIT([isync], m4_include([VERSION]))
+AC_INIT([isync], m4_sinclude([VERSION]))
 AC_CONFIG_HEADERS([autodefs.h])
 
 AC_CANONICAL_TARGET


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: fix IMAP INBOX case normalization

2024-08-06 Thread ossi via isync-devel
commit d54c22d20e5d3173c5398c2e9fc5e87837a26963
Author: Oswald Buddenhagen 
Date:   Tue Aug 6 15:16:27 2024 +0200

fix IMAP INBOX case normalization

while is_INBOX() was adjusted to work with not null-terminated strings,
is_inbox() wasn't.

amends 3aead33.

 src/drv_imap.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/drv_imap.c b/src/drv_imap.c
index cbf5804..b4c05fd 100644
--- a/src/drv_imap.c
+++ b/src/drv_imap.c
@@ -1530,7 +1530,7 @@ is_inbox( imap_store_t *ctx, const char *arg, int argl )
 {
if (!starts_with_upper( arg, argl, "INBOX", 5 ))
return 0;
-   if (arg[5] && arg[5] != ctx->delimiter[0])
+   if (argl > 5 && arg[5] != ctx->delimiter[0])
return 0;
return 1;
 }
@@ -3602,7 +3602,7 @@ imap_list_store( store_t *gctx, int flags,
// path  | P [i] | i [P] | P
//
int pfx_is_empty = !*ctx->prefix;
-   int pfx_is_inbox = !pfx_is_empty && is_inbox( ctx, ctx->prefix, -1 );
+   int pfx_is_inbox = !pfx_is_empty && is_inbox( ctx, ctx->prefix, strlen( 
ctx->prefix ) );
if (((flags & (LIST_PATH | LIST_PATH_MAYBE)) || pfx_is_empty) && 
!pfx_is_inbox && !(ctx->listed & LIST_PATH)) {
ctx->listed |= LIST_PATH;
if (pfx_is_empty)


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: add missing trailing newlines in error() calls

2024-08-06 Thread ossi via isync-devel
commit 76e5f223ee975ede474333247d43888d18d77ece
Author: Oswald Buddenhagen 
Date:   Tue Aug 6 00:43:42 2024 +0200

add missing trailing newlines in error() calls

 src/drv_imap.c| 2 +-
 src/drv_maildir.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/drv_imap.c b/src/drv_imap.c
index b4c05fd..1280e3c 100644
--- a/src/drv_imap.c
+++ b/src/drv_imap.c
@@ -1682,7 +1682,7 @@ prepare_box( char **buf, const imap_store_t *ctx )
if (!memcmp( name, "INBOX", 5 )) {
pfx = "";
} else if (!*pfx) {
-   error( "IMAP error: cannot use unqualified '%s'. Did 
you mean INBOX?", name );
+   error( "IMAP error: cannot use unqualified '%s'. Did 
you mean INBOX?\n", name );
return -1;
}
}
diff --git a/src/drv_maildir.c b/src/drv_maildir.c
index 847bc06..d15cf46 100644
--- a/src/drv_maildir.c
+++ b/src/drv_maildir.c
@@ -1533,7 +1533,7 @@ maildir_fetch_msg( store_t *gctx, message_t *gmsg, 
msg_data_t *data, int minimal
}
fstat( fd, &st );
if (st.st_size > INT_MAX) {
-   error( "Maildir error: %s is too big", buf );
+   error( "Maildir error: %s is too big\n", buf );
goto mbad;
}
data->len = st.st_size;


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: fix implicit listing of Maildir INBOX under Path

2024-08-21 Thread ossi via isync-devel
commit 8c781d4fb55f1dae47dab0388e7e3d40170b7d21
Author: Oswald Buddenhagen 
Date:   Wed Aug 21 11:13:40 2024 +0200

fix implicit listing of Maildir INBOX under Path

commit acd6b4b0 ("simplify/fix recursive maildir listing") argued that
listing INBOX when it is encountered while listing Path would be
unnecessary, as the caller would list it separately anyway if requested.
however, it is actually documented that Patterns will implicitly match
INBOX nested into Path. so revert that commit.

REFMAIL: 20240818002409.4c918eb4@inari

 src/drv_maildir.c | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/src/drv_maildir.c b/src/drv_maildir.c
index d15cf46..fe0e951 100644
--- a/src/drv_maildir.c
+++ b/src/drv_maildir.c
@@ -372,6 +372,8 @@ maildir_list_maildirpp( maildir_store_t *ctx, int flags, 
const char *inbox )
return 0;
 }
 
+static int maildir_list_inbox( maildir_store_t *ctx );
+
 static int
 maildir_list_recurse( maildir_store_t *ctx, int isBox,
   const char *inbox, uint inboxLen,
@@ -422,6 +424,10 @@ maildir_list_recurse( maildir_store_t *ctx, int isBox,
pl += pathLen;
if (inbox && equals( path, pl, inbox, inboxLen )) {
// Inbox nested into Path.
+   if (maildir_list_inbox( ctx ) < 0) {
+   closedir( dir );
+   return -1;
+   }
} else {
if (style == SUB_LEGACY) {
if (*ent == '.') {


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: improve reporting of failure to open previously present mailbox

2024-08-21 Thread ossi via isync-devel
commit 17c9cc11407ace9e84cf1135aad3d4bf8eb2b6d7
Author: Oswald Buddenhagen 
Date:   Wed Aug 21 10:38:15 2024 +0200

improve reporting of failure to open previously present mailbox

tell explicitly that the box cannot be opened _any more_, so it's clear
that Delete, rather than Create, would apply.

fwiw, it would be preferable to actually differentiate between absent
mailboxes and ones that fail to open for other reasons. but
unfortunately, IMAP doesn't report the difference (gmail has a
non-standard [NONEXISTENT] response code, though).

 src/sync.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/sync.c b/src/sync.c
index fa74d88..405d98f 100644
--- a/src/sync.c
+++ b/src/sync.c
@@ -440,12 +440,12 @@ box_confirmed2( sync_vars_t *svars, int t )
}
if (svars->existing) {
if (!(svars->chan->ops[t^1] & OP_REMOVE)) {
-   error( "Error: channel %s: %s box %s 
cannot be opened.\n",
+   error( "Error: channel %s: %s box %s 
cannot be opened anymore.\n",
   svars->chan->name, str_fn[t], 
svars->orig_name[t] );
goto bail;
}
if (svars->drv[t^1]->confirm_box_empty( 
svars->ctx[t^1] ) != DRV_OK) {
-   warn( "Warning: channel %s: %s box %s 
cannot be opened and %s box %s is not empty.\n",
+   warn( "Warning: channel %s: %s box %s 
cannot be opened anymore, and %s box %s is not empty.\n",
  svars->chan->name, str_fn[t], 
svars->orig_name[t], str_fn[t^1], svars->orig_name[t^1] );
goto done;
}


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: fix typos

2024-08-21 Thread ossi via isync-devel
commit dd27850e5449d35686224a4db055e33d368291e6
Author: Oswald Buddenhagen 
Date:   Mon Aug 19 12:28:15 2024 +0200

fix typos

most found using https://github.com/crate-ci/typos .

 debian/changelog| 6 +++---
 src/driver.h| 2 +-
 src/main_sync.c | 2 +-
 src/mbsync.1.in | 4 ++--
 src/mbsyncrc.sample | 4 ++--
 src/run-tests.pl| 4 ++--
 src/sync.c  | 2 +-
 7 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 9a04bbe..3f22e1a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -181,7 +181,7 @@ isync (1.0.3-1) experimental; urgency=low
 - It also supports unflagging messages. (Closes: #111286)
 - IMAP commands are sent asynchronously. (Closes: #226222)
   * Kill the old debconf question about upgrades from pre-0.8 versions.
-  * Use the (now obsolete) swedish and portugese translations anyway.
+  * Use the (now obsolete) swedish and portuguese translations anyway.
 (Closes: #337771, #378891)
   * New debconf note that warns about upgrades from pre-1.0 versions.
   * Add a build dependency on po-debconf.
@@ -273,7 +273,7 @@ isync (0.9.1-1) unstable; urgency=low
   * Remove sample.isyncrc from debian/docs: no need to have it both as a
 doc and as an example.
   * Move package from section non-US/main (?) to mail. (Closes: #154216)
-  * Update versionned build-dependency on debhelper to >= 4.1.16.
+  * Update versioned build-dependency on debhelper to >= 4.1.16.
   * Bump Standards-Version to 3.6.1. (No change required.)
 
  -- Nicolas Boullis   Tue, 14 Oct 2003 22:02:20 +0200
@@ -311,7 +311,7 @@ isync (0.8-1) unstable; urgency=low
 duplicate messages on your IMAP server.
 
   * Has better support for uploading locally added messages. Closes: #120272
-  * Added a debconf queston with some info about this that lets you abort the
+  * Added a debconf question with some info about this that lets you abort the
 upgrade.
   * Added NEWS.Debian with same info.
   * New maintainer.
diff --git a/src/driver.h b/src/driver.h
index fde8908..ebc96b6 100644
--- a/src/driver.h
+++ b/src/driver.h
@@ -271,7 +271,7 @@ struct driver {
 
/* Add/remove the named flags to/from the given message. The message 
may be either
 * a pre-fetched one (in which case the in-memory representation is 
updated),
-* or it may be identifed by UID only.
+* or it may be identified by UID only.
 * The operation may be delayed until commit_cmds() is called. */
void (*set_msg_flags)( store_t *ctx, message_t *msg, uint uid, int add, 
int del,
   void (*cb)( int sts, void *aux ), void *aux );
diff --git a/src/main_sync.c b/src/main_sync.c
index fff944c..afd136e 100644
--- a/src/main_sync.c
+++ b/src/main_sync.c
@@ -532,7 +532,7 @@ store_connected( int sts, void *aux )
int bufl = snprintf( buf, sizeof(buf), 
"%s%s", nz( mvars->chan->boxes[t], "" ), pat );
int flags = 0;
// Partial matches like "INB*" or even 
"*" are not considered,
-   // except implicity when the INBOX 
lives under Path.
+   // except implicitly when the INBOX 
lives under Path.
if (starts_with( buf, bufl, "INBOX", 5 
)) {
char c = buf[5];
if (!c) {
diff --git a/src/mbsync.1.in b/src/mbsync.1.in
index 759dbf1..f950b3b 100644
--- a/src/mbsync.1.in
+++ b/src/mbsync.1.in
@@ -111,7 +111,7 @@ Enable debugging categories:
 .br
 \fBs\fR, \fBsync\fR - print synchronization debug info
 .in -4
-All categories except \fBcrash\fR implictly enable \fIverbose\fR mode.
+All categories except \fBcrash\fR implicitly enable \fIverbose\fR mode.
 Without category specification, all categories except net-all are enabled.
 .TP
 \fB-q\fR, \fB--quiet\fR
@@ -368,7 +368,7 @@ See \fBUserCmd\fR above for details.
 Whether to use the macOS Keychain to obtain the password.
 (Default: \fBno\fR)
 .IP
-The neccessary keychain item can be created this way:
+The necessary keychain item can be created this way:
 .RS
 .IP
 .nh
diff --git a/src/mbsyncrc.sample b/src/mbsyncrc.sample
index e7c6196..7f85527 100644
--- a/src/mbsyncrc.sample
+++ b/src/mbsyncrc.sample
@@ -73,12 +73,12 @@ Inbox ~/Mail/w0rk_InBoX
 Channel personal-joined
 Far :personal:
 Near :local-personal:
-Paterns *
+Patterns *
 
 Channel work-joined
 Far :work:
 Near :local-work:
-Paterns *
+Patterns *
 
 Group joined personal-joined work-joined
 
diff --git a/src/run-tests.pl b/src/run-tests.pl
index 459142a..eeb0171 100755
--- a/src/run-tests.pl
+++ b/src/run-tests.pl
@@ -36,7 +36,7 @@ if (!-d "tmp") {
   my $tdir = tempdir();
   symlink $tdir, "tmp" or die "Cannot symlink temp directory: $!\n";
 }
-chdir "tmp" or die "Cannot enter temp dir

[commit] branch 'master' rewound

2024-09-29 Thread ossi via isync-devel
The branch 'master', previously at f7c5f1d, has been rewound by 2
revision(s) to 8c781d4.


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: remove stray closing brace from man page

2024-09-29 Thread ossi via isync-devel
commit f7c5f1dbf428deb9686d5d86fd8987af92ec3206
Author: Ludovico Gerardi 
AuthorDate: Sun Sep 29 14:46:39 2024 +0200
Commit: Oswald Buddenhagen 
CommitDate: Sun Sep 29 14:46:39 2024 +0200

remove stray closing brace from man page

amends 5d5e07eb.

 src/mbsync.1.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mbsync.1.in b/src/mbsync.1.in
index f950b3b..fba3669 100644
--- a/src/mbsync.1.in
+++ b/src/mbsync.1.in
@@ -12,7 +12,7 @@ mbsync - synchronize IMAP4 and Maildir mailboxes
 .SH SYNOPSIS
 \fBmbsync\fR [\fIoptions\fR ...] 
{{\fIchannel\fR[\fB:\fIbox\fR[{\fB,\fR|\fB\\n\fR}...]]|\fIgroup\fR} 
...|\fB-a\fR}
 .br
-\fBmbsync\fR --list-stores [\fIoptions\fR ...] [\fIstore\fR} ...]
+\fBmbsync\fR --list-stores [\fIoptions\fR ...] [\fIstore\fR ...]
 .
 .SH DESCRIPTION
 \fBmbsync\fR is a command line application which synchronizes mailboxes;


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: mbsync-get-cert: add support for STARTTLS

2024-09-29 Thread ossi via isync-devel
commit 33bb58b3b3c27dbc0d09c4ce8008ca9c6ea6ee99
Author: Behnam Lal 
AuthorDate: Sun Sep 29 14:35:11 2024 +0200
Commit: Oswald Buddenhagen 
CommitDate: Sun Sep 29 14:36:30 2024 +0200

mbsync-get-cert: add support for STARTTLS

nowadays, many servers offer STARTTLS on the default IMAP port 143
instead of (or in addition to) the traditional IMAP over SSL/TLS (IMAPS)
on port 993.

this patch has been fixed up somewhat by the maintainer.

 mbsync-get-cert | 30 +++---
 1 file changed, 27 insertions(+), 3 deletions(-)

diff --git a/mbsync-get-cert b/mbsync-get-cert
index 19e1485..d8f194a 100755
--- a/mbsync-get-cert
+++ b/mbsync-get-cert
@@ -9,9 +9,25 @@
 # from a trusted source.
 #
 
-if [ $# != 1 ]; then
-   echo "Usage: $0 " >&2
+usage() {
+   echo "Usage: $0 [-s] " >&2
+   echo "  -sUse IMAP+STARTTLS (port 143) instead of IMAPS (port 
993)" >&2
exit 1
+}
+
+STARTTLS=false
+
+while getopts "s" opt; do
+   case $opt in
+   s) STARTTLS=true ;;
+   *) usage ;;
+   esac
+done
+
+shift `expr $OPTIND - 1`
+
+if [ $# -ne 1 ]; then
+   usage
 fi
 
 HOST=$1
@@ -33,7 +49,15 @@ TMPFILE=$TMPDIR/get-cert
 ERRFILE=$TMPDIR/get-cert-err
 CERTFILE=$TMPDIR/cert
 
-echo QUIT | openssl s_client -connect $HOST:993 -showcerts \
+if $STARTTLS; then
+   FLAGS="-starttls imap"
+   PORT=143
+else
+   FLAGS=
+   PORT=993
+fi
+
+echo QUIT | openssl s_client $FLAGS -connect $HOST:$PORT -showcerts \
> $TMPFILE 2> $ERRFILE
 sed -e '1,/^-BEGIN CERTIFICATE-/d' \
-e '/^-END CERTIFICATE-/,$d' < $TMPFILE > $CERTFILE


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: remove stray closing brace from man page

2024-09-29 Thread ossi via isync-devel
commit 3c4b5f1c83a568f18c14c93aab95c9a853edfd15
Author: Ludovico Gerardi 
AuthorDate: Sun Sep 29 14:46:39 2024 +0200
Commit: Oswald Buddenhagen 
CommitDate: Sun Sep 29 14:48:01 2024 +0200

remove stray closing brace from man page

amends 5d5e07eb.

 src/mbsync.1.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mbsync.1.in b/src/mbsync.1.in
index f950b3b..fba3669 100644
--- a/src/mbsync.1.in
+++ b/src/mbsync.1.in
@@ -12,7 +12,7 @@ mbsync - synchronize IMAP4 and Maildir mailboxes
 .SH SYNOPSIS
 \fBmbsync\fR [\fIoptions\fR ...] 
{{\fIchannel\fR[\fB:\fIbox\fR[{\fB,\fR|\fB\\n\fR}...]]|\fIgroup\fR} 
...|\fB-a\fR}
 .br
-\fBmbsync\fR --list-stores [\fIoptions\fR ...] [\fIstore\fR} ...]
+\fBmbsync\fR --list-stores [\fIoptions\fR ...] [\fIstore\fR ...]
 .
 .SH DESCRIPTION
 \fBmbsync\fR is a command line application which synchronizes mailboxes;


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] branch 'wip/socket-debug' reset

2024-11-07 Thread ossi via isync-devel
The branch 'wip/socket-debug', previously at 6eb5cd7, has been rewound
by 3 revision(s) and subsequently fast-forwarded by 537 revision(s) to
d7dc906.


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: accept zero-sized messages from IMAP

2024-11-25 Thread ossi via isync-devel
commit 15c7e02e4a5fe127bd55bce2b9aa63a5da8eb228
Author: Oswald Buddenhagen 
Date:   Sun Nov 24 13:11:32 2024 +0100

accept zero-sized messages from IMAP

while such a thing is rather pointless, completely empty messages are
not forbidden. consequently, we should be able to deal with them, and
above all not crash.

 src/drv_imap.c | 5 -
 src/socket.c   | 1 -
 src/util.c | 5 +
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/drv_imap.c b/src/drv_imap.c
index 1280e3c..b0be1fd 100644
--- a/src/drv_imap.c
+++ b/src/drv_imap.c
@@ -780,6 +780,8 @@ parse_imap_list( imap_store_t *ctx, char **sp, 
parse_list_state_t *sts )
if (sts->callback->atom( ctx, NULL, bytes, 
AtomChunkedLiteral ) != LIST_OK)
goto bail;
sts->in_literal = ChunkedLiteral;
+   if (!bytes)
+   goto nobytes;
sts->big_literal = 1;
  get_chunked:
n = 1;
@@ -806,7 +808,7 @@ parse_imap_list( imap_store_t *ctx, char **sp, 
parse_list_state_t *sts )
} else if (DFlags & DEBUG_NET_ALL) {
printf( "%s=\n", ctx->label );
fwrite( p, n, 1, stdout );
-   if (p[n - 1] != '\n')
+   if (n && p[n - 1] != '\n')
fputs( "\n(no-nl) ", stdout );
printf( "%s=\n", ctx->label );
} else {
@@ -819,6 +821,7 @@ parse_imap_list( imap_store_t *ctx, char **sp, 
parse_list_state_t *sts )
bytes -= n;
if (bytes > 0)
goto postpone;
+ nobytes:
if (sts->in_literal == ChunkedLiteral && 
sts->callback->atom( ctx, NULL, 0, AtomLiteral ) != LIST_OK)
goto bail;
  getline:
diff --git a/src/socket.c b/src/socket.c
index afd3f18..1ef0e95 100644
--- a/src/socket.c
+++ b/src/socket.c
@@ -952,7 +952,6 @@ socket_expect_bytes( conn_t *conn, uint len )
 char *
 socket_read( conn_t *conn, uint min_len, uint max_len, uint *out_len )
 {
-   assert( min_len > 0 );
assert( min_len <= sizeof(conn->buf) );
assert( min_len <= max_len );
 
diff --git a/src/util.c b/src/util.c
index e697cfb..121ab0a 100644
--- a/src/util.c
+++ b/src/util.c
@@ -637,6 +637,11 @@ nfmalloc( size_t sz )
 {
void *ret;
 
+#ifndef __GLIBC__
+   // The C standard allows NULL returns for zero-sized allocations.
+   if (!sz)
+   sz = 1;
+#endif
if (!(ret = malloc( sz )))
oom();
return ret;


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: make summary more concise

2024-11-24 Thread ossi via isync-devel
commit a1be7e9a369c1d038428a9d0b56ad0eb5d407441
Author: Oswald Buddenhagen 
Date:   Tue Nov 19 13:05:00 2024 +0100

make summary more concise

the verbose summary was actually hard to read due to the numbers getting
lost between the words.

i considered highlighting the numbers using ansi escapes, but the
irregular structure would be still hard to parse, and the escapes would
be unsuitable for log files.

also considered was clustering the numbers at the beginnings of the
lines, but that would result in a messy sentence structure.

a proper tabular format would introduce a lot more spacing, and would be
a lot harder to implement for little tangible benefit.

i tried just using the progress counter format, but with plain numbers
instead of the "x/y", but it looked kinda stupid.

so instead use a slightly expanded, semi-tabular version of that, as
suggested by Akshay Hegde on the list. this format bears a risk of
exceeding 80 columns, and in log files the internal spacing looks kinda
out of place, but these should be minor issues in practice.

amends a1a3313e.

REF: 

 src/main_sync.c | 32 
 src/mbsync.1.in |  2 +-
 2 files changed, 5 insertions(+), 29 deletions(-)

diff --git a/src/main_sync.c b/src/main_sync.c
index afd136e..2ea4a92 100644
--- a/src/main_sync.c
+++ b/src/main_sync.c
@@ -9,7 +9,6 @@
 
 #define nz(a, b) ((a) ? (a) : (b))
 
-static int ops_any[2], trash_any[2], expunge_any[2];
 static int chans_total, chans_done;
 static int boxes_total, boxes_done;
 
@@ -84,25 +83,10 @@ summary( void )
if (!boxes_done)
return;  // Shut up if we errored out early.
 
-   printf( "Processed %d box(es) in %d channel(s)", boxes_done, chans_done 
);
-   for (int t = 2; --t >= 0; ) {
-   if (ops_any[t])
-   printf( (DFlags & DRYRUN) ?
-   ",\nwould %s %d new message(s) and %d flag 
update(s)" :
-   ",\n%sed %d new message(s) and %d flag 
update(s)",
-   str_hl[t], new_done[t], flags_done[t] );
-   if (trash_any[t])
-   printf( (DFlags & DRYRUN) ?
-   ",\nwould move %d %s message(s) to trash" :
-   ",\nmoved %d %s message(s) to trash",
-   trash_done[t], str_fn[t] );
-   if (expunge_any[t])
-   printf( (DFlags & DRYRUN) ?
-   ",\nwould expunge %d message(s) from %s" :
-   ",\nexpunged %d message(s) from %s",
-   expunge_done[t], str_fn[t] );
-   }
-   puts( "." );
+   printf( "Channels: %dBoxes: %dFar: +%d *%d #%d -%dNear: +%d 
*%d #%d -%d\n",
+   chans_done, boxes_done,
+   new_done[F], flags_done[F], trash_done[F], expunge_done[F],
+   new_done[N], flags_done[N], trash_done[N], expunge_done[N] );
 }
 
 static int
@@ -244,14 +228,6 @@ add_channel( chan_ent_t ***chanapp, channel_conf_t *chan, 
int ops[] )
free( ce );
return NULL;
}
-   if (chan->ops[t] & OP_MASK_TYPE)
-   ops_any[t] = 1;
-   if (chan->ops[t] & (OP_EXPUNGE | OP_EXPUNGE_SOLO)) {
-   expunge_any[t] = 1;
-   if (chan->stores[t]->trash ||
-   (chan->stores[t^1]->trash && 
chan->stores[t^1]->trash_remote_new))
-   trash_any[t] = 1;
-   }
}
 
**chanapp = ce;
diff --git a/src/mbsync.1.in b/src/mbsync.1.in
index fba3669..032918b 100644
--- a/src/mbsync.1.in
+++ b/src/mbsync.1.in
@@ -802,7 +802,7 @@ No attempt is made to calculate the totals in advance, so 
they grow over
 time as more information is gathered.
 .P
 Irrespective of output redirection, \fBmbsync\fR will print a summary
-of the above in plain language upon completion, except in quiet mode.
+of the above upon completion, except in quiet mode.
 .
 .SH RECOMMENDATIONS
 Make sure your IMAP server does not auto-expunge deleted messages - it is


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: fix omissions in making expiration target side configurable

2024-11-24 Thread ossi via isync-devel
commit 5f953c5162cef64c26b78edf7feb37499367c371
Author: Oswald Buddenhagen 
Date:   Mon Nov 18 15:13:14 2024 +0100

fix omissions in making expiration target side configurable

amends 8566283c.

 src/sync.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/sync.c b/src/sync.c
index 38dbf06..1937d65 100644
--- a/src/sync.c
+++ b/src/sync.c
@@ -1013,7 +1013,7 @@ box_loaded( int sts, message_t *msgs, int total_msgs, int 
recent_msgs, void *aux
sflags = sanitize_flags( 
sflags, svars, t );
if ((t != xt) && (srec->status 
& (S_EXPIRE | S_EXPIRED))) {
/* Don't propagate 
deletion resulting from expiration. */
-   debug( "  near side 
expiring\n" );
+   debug( "  %s side 
expiring\n", str_fn[xt] );
sflags &= ~F_DELETED;
}
if (srec->status & 
S_DUMMY(t^1)) {
@@ -1204,7 +1204,7 @@ box_loaded( int sts, message_t *msgs, int total_msgs, int 
recent_msgs, void *aux
if (!srec->uid[xt^1])
continue;
if (!(srec->status & S_PENDING)) {
-   // We ignore unpaired far-side messages, as 
there is obviously nothing
+   // We ignore unpaired keep-side messages, as 
there is obviously nothing
// to expire in the first place.
if (!srec->msg[xt])
continue;


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: do not let both-sided uidvalidity change deter us

2024-11-24 Thread ossi via isync-devel
commit bf34d9fd29b7e2bd82ddb6b892ea0e671fc19926
Author: Oswald Buddenhagen 
Date:   Sat Nov 23 12:12:14 2024 +0100

do not let both-sided uidvalidity change deter us

the algorithm is symmetrical, comparing the msgids that belong to the
paired uids. so it doesn't matter for recovering one side if the other
side's uidvalidity also changed. it does however impact our ability to
say on which side the change was genuine.

the pointless limitation was presumably a vestige from an earlier
iteration.

amends 77acc26 and 594e60b.

 src/sync.c | 31 +++
 1 file changed, 15 insertions(+), 16 deletions(-)

diff --git a/src/sync.c b/src/sync.c
index 405d98f..38dbf06 100644
--- a/src/sync.c
+++ b/src/sync.c
@@ -511,7 +511,7 @@ box_opened2( sync_vars_t *svars, int t )
channel_conf_t *chan;
sync_rec_t *srec;
uint_array_alloc_t mexcs;
-   uint opts[2], fails, minwuid;
+   uint opts[2], minwuid;
 
svars->state[t] |= ST_SELECTED;
if (!(svars->state[t^1] & ST_SELECTED))
@@ -520,23 +520,13 @@ box_opened2( sync_vars_t *svars, int t )
ctx[1] = svars->ctx[1];
chan = svars->chan;
 
-   fails = 0;
-   for (t = 0; t < 2; t++)
-   if (svars->uidval[t] != UIDVAL_BAD && svars->uidval[t] != 
svars->newuidval[t])
-   fails++;
-   // If only one side changed UIDVALIDITY, we will try to re-approve it 
further down.
-   if (fails == 2) {
-   error( "Error: channel %s: UIDVALIDITY of both far side %s and 
near side %s changed.\n",
-  svars->chan->name, svars->orig_name[F], 
svars->orig_name[N]);
+   if (!lock_state( svars )) {
  bail:
svars->ret = SYNC_FAIL;
sync_bail( svars );
return;
}
 
-   if (!lock_state( svars ))
-   goto bail;
-
int any_dummies[2] = { 0, 0 };
int any_purges[2] = { 0, 0 };
int any_upgrades[2] = { 0, 0 };
@@ -574,9 +564,11 @@ box_opened2( sync_vars_t *svars, int t )
}
 
opts[F] = opts[N] = 0;
-   if (fails)
-   opts[F] = opts[N] = OPEN_PAIRED | OPEN_PAIRED_IDS;
for (t = 0; t < 2; t++) {
+   if (svars->uidval[t] != UIDVAL_BAD && svars->uidval[t] != 
svars->newuidval[t]) {
+   opts[F] |= OPEN_PAIRED | OPEN_PAIRED_IDS;
+   opts[N] |= OPEN_PAIRED | OPEN_PAIRED_IDS;
+   }
if (any_purges[t]) {
debug( "resuming %d %s purge(s)\n", any_purges[t], 
str_fn[t] );
opts[t] |= OPEN_SETFLAGS;
@@ -859,8 +851,15 @@ box_loaded( int sts, message_t *msgs, int total_msgs, int 
recent_msgs, void *aux
if (!srec->msg[t^1])
continue;  // Partner disappeared.
if (!srec->msg[t^1]->msgid || strcmp( 
srec->msg[F]->msgid, srec->msg[N]->msgid )) {
-   error( "Error: channel %s, %s box %s: 
UIDVALIDITY genuinely changed (at UID %u).\n",
-  svars->chan->name, str_fn[t], 
svars->orig_name[t], srec->uid[t] );
+   if (svars->uidval[t^1] != 
svars->newuidval[t^1]) {
+   error( "Error: channel %s, %s 
box %s (at UID %u):"
+  " Unable to recover from 
both-sided UIDVALIDITY change,"
+  " as it is genuine on at 
least one side.\n",
+  svars->chan->name, 
str_fn[t], svars->orig_name[t], srec->uid[t] );
+   } else {
+   error( "Error: channel %s, %s 
box %s (at UID %u): UIDVALIDITY genuinely changed.\n",
+  svars->chan->name, 
str_fn[t], svars->orig_name[t], srec->uid[t] );
+   }
  uvchg:
svars->ret |= SYNC_FAIL;
cancel_sync( svars );


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: fix crash when resuming message propagation with MaxMessages

2024-11-24 Thread ossi via isync-devel
commit 1e7a75095b82b43c60de55890d6728f68e3e9e0e
Author: Oswald Buddenhagen 
Date:   Wed Nov 20 09:08:26 2024 +0100

fix crash when resuming message propagation with MaxMessages

the problem is triggered by the source-side message disappearing
after a transaction to propagate it was started and then interrupted.

it seems tempting to centralize the null-check, but some of the other
branches are taken in situations where the relevant messages from the
source store have not been requested.

no autotest, as our test suite does not support injecting changes before
resuming.

amends 0089f49.

 src/sync.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/sync.c b/src/sync.c
index 1937d65..8cf3c65 100644
--- a/src/sync.c
+++ b/src/sync.c
@@ -1229,6 +1229,8 @@ box_loaded( int sts, message_t *msgs, int total_msgs, int 
recent_msgs, void *aux
// but we may be pulling in the real 
ones.
nflags = (srec->pflags | 
srec->aflags[xt]) & ~srec->dflags[xt];
} else {
+   if (!srec->msg[xt^1])
+   continue;
nflags = srec->msg[xt^1]->flags;
}
}


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: mbsync-get-cert: add support for STARTTLS

2024-11-24 Thread ossi via isync-devel
commit d7305e12d9f348975eb0f1a29be3b9fd76d3
Author: Behnam Lal 
AuthorDate: Sun Sep 29 14:35:11 2024 +0200
Commit: Oswald Buddenhagen 
CommitDate: Sun Nov 24 11:22:34 2024 +0100

mbsync-get-cert: add support for STARTTLS

nowadays, many servers offer STARTTLS on the default IMAP port 143
instead of (or in addition to) the traditional IMAP over SSL/TLS (IMAPS)
on port 993.

this patch has been fixed up somewhat by the maintainer.

 mbsync-get-cert | 30 +++---
 1 file changed, 27 insertions(+), 3 deletions(-)

diff --git a/mbsync-get-cert b/mbsync-get-cert
index 19e1485..d8f194a 100755
--- a/mbsync-get-cert
+++ b/mbsync-get-cert
@@ -9,9 +9,25 @@
 # from a trusted source.
 #
 
-if [ $# != 1 ]; then
-   echo "Usage: $0 " >&2
+usage() {
+   echo "Usage: $0 [-s] " >&2
+   echo "  -sUse IMAP+STARTTLS (port 143) instead of IMAPS (port 
993)" >&2
exit 1
+}
+
+STARTTLS=false
+
+while getopts "s" opt; do
+   case $opt in
+   s) STARTTLS=true ;;
+   *) usage ;;
+   esac
+done
+
+shift `expr $OPTIND - 1`
+
+if [ $# -ne 1 ]; then
+   usage
 fi
 
 HOST=$1
@@ -33,7 +49,15 @@ TMPFILE=$TMPDIR/get-cert
 ERRFILE=$TMPDIR/get-cert-err
 CERTFILE=$TMPDIR/cert
 
-echo QUIT | openssl s_client -connect $HOST:993 -showcerts \
+if $STARTTLS; then
+   FLAGS="-starttls imap"
+   PORT=143
+else
+   FLAGS=
+   PORT=993
+fi
+
+echo QUIT | openssl s_client $FLAGS -connect $HOST:$PORT -showcerts \
> $TMPFILE 2> $ERRFILE
 sed -e '1,/^-BEGIN CERTIFICATE-/d' \
-e '/^-END CERTIFICATE-/,$d' < $TMPFILE > $CERTFILE


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: build: also consider builds off of git with `git clone --depth 1`

2024-12-04 Thread ossi via isync-devel
commit 8920b6a1db443aac00783f7754a05852bb1bc71c
Author: Paymon MARANDI 
AuthorDate: Tue Dec 3 15:25:09 2024 -0500
Commit: Oswald Buddenhagen 
CommitDate: Wed Dec 4 09:36:28 2024 +0100

build: also consider builds off of git with `git clone --depth 1`

one case where this could happen is a shallow clone, purely for build
purposes. in source based distros, like gentoo, setting depth of the
clone to 1, globally, is a common configuration. this patch avoids that
those builds fail.

Signed-off-by: Paymon MARANDI 

 version.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/version.sh b/version.sh
index fc1ed7d..5dfc61b 100755
--- a/version.sh
+++ b/version.sh
@@ -22,7 +22,7 @@ else
# find out whether we have local work, and if so, collapse it into
# a single suffix. otherwise, we'd cause pointless rebuilds during
# development.
-   gver=$(git describe --tags $mb)
+   gver=$(git describe --always --tags $mb)
lcl=$(git rev-list -n 1 $mb..HEAD)
if test -n "$lcl"; then
gver="$gver-plus"


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: build: also consider builds off of git with `git clone --depth 1`

2024-12-04 Thread ossi via isync-devel
commit 884413b48871361cf6c0cfa41d01c22ed1ec8d30
Author: Paymon MARANDI 
AuthorDate: Tue Dec 3 15:25:09 2024 -0500
Commit: Oswald Buddenhagen 
CommitDate: Wed Dec 4 17:20:49 2024 +0100

build: also consider builds off of git with `git clone --depth 1`

one case where this could happen is a shallow clone, purely for build
purposes. in source based distros, like gentoo, setting depth of the
clone to 1, globally, is a common configuration. this patch avoids that
those builds fail.

Signed-off-by: Paymon MARANDI 

 version.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/version.sh b/version.sh
index fc1ed7d..669f1b6 100755
--- a/version.sh
+++ b/version.sh
@@ -17,12 +17,12 @@ if test -z "$mb"; then
 fi
 if test -z "$mb"; then
# still no upstream, so just describe HEAD as-is.
-   gver=$(git describe --tags HEAD)
+   gver=$(git describe --always --tags HEAD)
 else
# find out whether we have local work, and if so, collapse it into
# a single suffix. otherwise, we'd cause pointless rebuilds during
# development.
-   gver=$(git describe --tags $mb)
+   gver=$(git describe --always --tags $mb)
lcl=$(git rev-list -n 1 $mb..HEAD)
if test -n "$lcl"; then
gver="$gver-plus"


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] branch 'master' rewound

2024-12-04 Thread ossi via isync-devel
The branch 'master', previously at 8920b6a, has been rewound by 1
revision(s) to 15c7e02.


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: fix --dry-run without --debug-driver

2025-01-28 Thread ossi via isync-devel
commit 1e0b661d09c5a4bbb0bb2061db8071363145d5ac
Author: Oswald Buddenhagen 
Date:   Tue Jan 28 00:49:17 2025 +0100

fix --dry-run without --debug-driver

the stubbing is implemented by the proxy driver, so we need to hook it
in in that case as well. the driver is already prepared for that, as
it's also used to implement -Ta/-TA.

 src/main_sync.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main_sync.c b/src/main_sync.c
index 2ea4a92..f4ec34b 100644
--- a/src/main_sync.c
+++ b/src/main_sync.c
@@ -450,7 +450,7 @@ do_sync_chans( main_vars_t *mvars )
labels[F] = labels[N] = "";
for (int t = 0; t < 2; t++) {
store_t *ctx = mvars->drv[t]->alloc_store( 
mvars->chan->stores[t], labels[t] );
-   if ((DFlags & DEBUG_DRV) || ((DFlags & FORCEASYNC(t)) 
&& !(dcaps[t] & DRV_ASYNC))) {
+   if ((DFlags & (DEBUG_DRV | DRYRUN)) || ((DFlags & 
FORCEASYNC(t)) && !(dcaps[t] & DRV_ASYNC))) {
mvars->drv[t] = &proxy_driver;
ctx = proxy_alloc_store( ctx, labels[t], DFlags 
& FORCEASYNC(t) );
}


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: fix -ls hanging after synchronous error

2025-01-28 Thread ossi via isync-devel
commit 61f0810bb17ba185aa12fd2197f92deaee249dbd
Author: Oswald Buddenhagen 
Date:   Tue Jan 28 10:30:47 2025 +0100

fix -ls hanging after synchronous error

we need to make a note that we're already done with the Store, as
otherwise we'll wait for a callback that never comes.

 src/main_list.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/main_list.c b/src/main_list.c
index c4aa63e..ff3d193 100644
--- a/src/main_list.c
+++ b/src/main_list.c
@@ -78,6 +78,7 @@ list_store_bad( void *aux )
 {
list_vars_t *lvars = (list_vars_t *)aux;
 
+   lvars->done = 1;
lvars->drv->cancel_store( lvars->ctx );
lvars->cvars->ret = 1;
list_next_store( lvars );


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: explicitly strip newline from contents of VERSION

2025-01-13 Thread ossi via isync-devel
commit 277e3cee1b5c31e221b2bfd4592d09c41a9a2226
Author: Oswald Buddenhagen 
Date:   Mon Jan 13 13:09:18 2025 +0100

explicitly strip newline from contents of VERSION

while m4 1.4.19 + autoconf 2.72 from my debian unstable drop the
trailing newline automatically, m4 1.4.18 + autoconf 2.69 shipped
with ubuntu 20.4 don't, leading to an invalid configure script.

reported and verified by Donat Wegner .

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 7f1fc6e..8c46b8b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@
 dnl SPDX-License-Identifier: GPL-2.0-or-later
 
 m4_syscmd([./version.sh])
-AC_INIT([isync], m4_sinclude([VERSION]))
+AC_INIT([isync], m4_chomp(m4_sinclude([VERSION])))
 AC_CONFIG_HEADERS([autodefs.h])
 
 AC_CANONICAL_TARGET


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] branch 'wip/includecmd' reset

2025-03-21 Thread ossi via isync-devel
The branch 'wip/includecmd', previously at 9e9aa1b, has been rewound by
1 revision(s) and subsequently fast-forwarded by 1 revision(s) to
07a1225.


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] branch 'wip/includecmd' created

2025-03-19 Thread ossi via isync-devel
The branch 'wip/includecmd' has been created at 9e9aa1b.


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: prefix deprecation notices with file name

2025-03-11 Thread ossi via isync-devel
commit 281a9ba465ba8be0d58fcb690ec34f9cdacdd1a9
Author: Oswald Buddenhagen 
Date:   Tue Mar 11 12:44:22 2025 +0100

prefix deprecation notices with file name

so it's (even) more obvious that these refer to the configuration,
rather than being some internal sloppiness.

 src/config.c   | 6 +++---
 src/drv_imap.c | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/config.c b/src/config.c
index 4ff389e..3ea4837 100644
--- a/src/config.c
+++ b/src/config.c
@@ -660,11 +660,11 @@ load_config( const char *where )
}
fclose (cfile.fp);
if (cfile.ms_warn)
-   warn( "Notice: Master/Slave are deprecated; use Far/Near 
instead.\n" );
+   warn( "%s: notice: Master/Slave are deprecated; use Far/Near 
instead.\n", cfile.file );
if (cfile.renew_warn)
-   warn( "Notice: ReNew is deprecated; use Upgrade instead.\n" );
+   warn( "%s: notice: ReNew is deprecated; use Upgrade 
instead.\n", cfile.file );
if (cfile.delete_warn)
-   warn( "Notice: Delete is deprecated; use Gone instead.\n" );
+   warn( "%s: notice: Delete is deprecated; use Gone instead.\n", 
cfile.file );
cfile.err |= merge_ops( gcops, global_conf.ops, "" );
if (!global_conf.sync_state) {
const char *state_home = getenv( "XDG_STATE_HOME" );
diff --git a/src/drv_imap.c b/src/drv_imap.c
index b0be1fd..9b170ab 100644
--- a/src/drv_imap.c
+++ b/src/drv_imap.c
@@ -3824,7 +3824,7 @@ imap_parse_store( conffile_t *cfg, store_conf_t **storep )
static int sslv_warned;
if (!sslv_warned) {
sslv_warned = 1;
-   warn( "Notice: SSLVersions is deprecated. Use 
TLSVersions instead.\n" );
+   warn( "%s: notice: SSLVersions is deprecated. 
Use TLSVersions instead.\n", cfg->file );
}
server->sconf.ssl_versions = 0;
arg = cfg->val;
@@ -3864,7 +3864,7 @@ imap_parse_store( conffile_t *cfg, store_conf_t **storep )
static int sslt_warned;
if (!sslt_warned) {
sslt_warned = 1;
-   warn( "Notice: SSLType is deprecated. Use 
TLSType instead.\n" );
+   warn( "%s: notice: SSLType is deprecated. Use 
TLSType instead.\n", cfg->file );
}
  tlstype:
if (!strcasecmp( "None", cfg->val )) {


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: expand NEWS

2025-03-11 Thread ossi via isync-devel
commit ea22b09ac77380c6f530c09a5dc52dc2810f83c3
Author: Oswald Buddenhagen 
Date:   Tue Mar 11 19:16:59 2025 +0100

expand NEWS

include bug fixes and other improvements, as otherwise they wouldn't be
documented in a user-accessible way, given that ChangeLog wasn't all
that usable, and is gone entirely now.

this backfills from the release notes i have put next to each tar ball
since 1.0.5. and then some edits, in particular release dates.

 NEWS | 690 +++
 1 file changed, 556 insertions(+), 134 deletions(-)

diff --git a/NEWS b/NEWS
index 0438992..08c3049 100644
--- a/NEWS
+++ b/NEWS
@@ -1,229 +1,651 @@
-[1.5.0]
+1.5.0 (2024-08-02)
+==
+
+Compatibility Concerns:
+
+- The reference point for relative local paths in the configuration file
+  is now the file's containing directory
+- Maildir Path cannot be nested into Inbox anymore (this was never documented)
+- Renamed the ReNew/--renew/-N options to Upgrade/--upgrade/-u and
+  Delete/--delete/-d to Gone/--gone/-g
+- Superseded SSLVersions option with TLSVersions, and disabled TLS v1.0
+  and v1.1 by default
+- Renamed SSLType option to TLSType
+- Placeholders will be now created for messages exceeding MaxSize even if they
+  are flagged on the source side
+- Placeholder upgrades no longer pull flag updates along unless also requested
+- New messages which we are about to expunge from the source side are not
+  propaged any more even if the target side would keep them
+- Tunnel is now consistently assumed to be secure, so some warnings are gone
+
+New Features:
+
+- Changed default config & state locations to follow the XDG basedir spec;
+  the old locations remain supported
+- Added support for IMAP mailbox names with non-ASCII characters
+- Added support for Maildir Paths with suffixes (not ending with a slash)
+- Made the Channel side to expire with MaxMessages configurable
+- MaxMessages and MaxSize can be used together now
+- The unfiltered list of mailboxes in each Store can be printed now
+- A proper summary is now printed prior to exiting.
+  This includes expunges, which are now included in the progress as well.
+- Added support for mirroring deletions more accurately; option ExpungeSolo
+- Added new sync operation 'Old' to retry previously skipped messages
+- Added --ext-exit option to indicate with the exit code whether Stores
+  were modified
+- Added --dry-run option
+
+Improvements:
+
+- Added support for the LITERAL- IMAP extension, which improves upload
+  performance with f.ex. GMail somewhat
+- Improved error handling when attempting to store too big messages on
+  f.ex. GMail
+- Malformed messages with incomplete headers will be propagated now
+- A notice is now emitted if the server does not support race-free Trash
+- Improved checking for invalid command lines
+- Options not supported due to the build configuration are still recognized
+  now, to make error messages more helpful
+- The progress indicator is rate-limited now
+- Various improvements to the debugging output
+- Vastly extended the autotest suite
+
+Bug Fixes:
 
-Changed default config & state locations to follow the XDG basedir spec.
-The old locations remain supported.
+- Worked around "unexpected EOF" error messages at end of TLS connections;
+  affects f.ex. GMail
+- Worked around protocol corruption issue with iCloud (mail.me.com)
+- Fixed missing CAPABILITY command after logging in if the server does not
+  report updated capabilities automatically (affects f.ex. MS Exchange)
+- Fixed CopyArrivalDate failing on some date strings
+- Fixed propagation of new messages to non-UIDPLUS servers
+- Fixed Timeout being ignored by DNS host resolution
+- Fixed broken Tunnel potentially causing SIGPIPE
+- Fixed Tunnel leaving behind zombie processes
+- Fixed expunges not being propagated at all if the first run after they
+  occurred did not include --delete
+- Fixed MaxMessages being exceeded when only --new was used
+- Fixed messages being instantly expired despite being important when only
+  --new was used
+- Trash-ing failures now prevent expunging and cause a non-zero exit code
+- Fixed placeholders being needlessly trashed
+- Fixed TrashNewOnly and TrashRemoteNew omitting messages for which only
+  a placeholder was synced
+- Fixed TrashRemoteNew omitting messages which exceed MaxSize
+- Fixed TrashRemoteNew not using race-free expunge
+- Optimized some places with unnecessarily high CPU usage
+- Fixed unnecessary network usage by non-selective uni-directional syncs when
+  no placeholders are present
+- Fixed crash when Patterns yields nothing when built with new compilers
+- Fixed crash when all flag propagations to a mailbox failed
+- Fixed handling of errors during opening mailboxes
+- Removed useless "lost track of ... messages" warnings when resuming after
+  an interruption
+- Fixed many minor bugs in corner cases, mostly when resuming after
+  interruptions
+
+
+1

[commit] master: release preparation

2025-03-11 Thread ossi via isync-devel
commit ffc0884efe4b688901c17270c1c0acca2d5d490e
Author: Oswald Buddenhagen 
Date:   Tue Mar 11 19:47:48 2025 +0100

release preparation

update NEWS and AUTHORS

 AUTHORS |  3 +++
 NEWS| 23 +++
 2 files changed, 26 insertions(+)

diff --git a/AUTHORS b/AUTHORS
index 024f512..2323bc8 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -71,6 +71,7 @@ Honorary Contributors
 Alessandro Ghedini 
 Andreas Grapentin 
 Aurélien Francillon 
+Behnam Lal 
 Ben Kibbey 
 Caspar Schutijser 
 Cedric Ware 
@@ -87,12 +88,14 @@ Jaroslav Suchanek 
 Jeremie Courreges-Anglas 
 Klemens Nanni 
 Lorenzo Martignoni 
+Ludovico Gerardi 
 Magnus Jonsson 
 Marcin Niestroj 
 Martin Stenberg 
 Mike Delaney 
 Nicolas Boullis 
 Nihal Jere 
+Paymon MARANDI 
 Reimar Döffinger 
 Remko Tronçon 
 sb...@users.sf.net
diff --git a/NEWS b/NEWS
index 08c3049..22f3ab1 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,26 @@
+1.5.1 (2025-03-11)
+==
+
+Improvements:
+
+- mbsync-get-cert now supports STARTTLS; new option -s
+- Zero-sized messages from IMAP Stores are now accepted
+- UIDVALIDITY change recovery is now attempted even if both sides of
+  the Channel are affected
+- The sync summary at the end is more concise again
+- Cosmetic improvements to some console output
+
+Bug Fixes:
+
+- Fixed IMAP INBOX not being properly recognized with some servers
+- Fixed Maildir INBOX nested into Path not being implicitly listed
+- Fixed crash when resuming message propagation with MaxMessages
+- Fixed --list-stores hanging after synchronous error
+- Fixed --dry-run without --debug-driver not being really dry
+- Fixed building from pristine git clones
+- Fixed building from shallow git clones
+
+
 1.5.0 (2024-08-02)
 ==
 


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] master: stub out ChangeLog

2025-03-11 Thread ossi via isync-devel
commit 8f58baa153fc8bbed2e44f993e13a364a2ab4ac4
Author: Oswald Buddenhagen 
Date:   Tue Mar 11 19:05:05 2025 +0100

stub out ChangeLog

that file is a relic from the times before distributed VCS with atomic
commits existed. ours was slightly filtered, but still way too noisy to
be useful for end users. so basically, it had no target audience.

the file itself is left in place, because automake complains otherwise
(we don't want to use 'foreign' strictness, as otherwise INSTALL is not
added by autoreconf --install).

 .gitignore  |  1 -
 ChangeLog   |  3 +++
 Makefile.am | 55 -
 autogen.sh  |  1 -
 4 files changed, 3 insertions(+), 57 deletions(-)

diff --git a/.gitignore b/.gitignore
index 66a12ec..31ee130 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,4 @@
 /.autoconf_trace
-/ChangeLog
 /INSTALL
 /VERSION
 /autom4te.cache/
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 000..5fc59d9
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,3 @@
+This file is empty for a lack of a target audience.
+
+Have a look at the NEWS file for a summary of user-visible changes.
diff --git a/Makefile.am b/Makefile.am
index 79067cb..121ca3e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -6,61 +6,6 @@ SUBDIRS = src
 bin_SCRIPTS = mbsync-get-cert
 EXTRA_DIST = LICENSES VERSION debian isync.spec $(bin_SCRIPTS)
 
-LOG_PL = \
-use POSIX qw(strftime); \
-use Date::Parse; \
-use Text::Wrap; \
-$$Text::Wrap::columns = 72; \
-while (defined($$_ = <>)) { \
-/^commit / or die "commit missing: $$_"; \
-<> =~ /^log size (\d+)$$/ or die "wrong size"; \
-$$len = $$1; \
-read(STDIN, $$log, $$len) == $$len or die "unexpected EOF"; \
-$$log =~ s/^Author: ([^>]+>)\nDate:   (\d{4}-\d\d-\d\d \d\d:\d\d:\d\d 
[-+]\d{4})\n(.*)$$/$$3/s or die "unexpected log format"; \
-$$author = $$1; $$date = str2time($$2); \
-scalar(<>); \
-@files = (); \
-$$pfx = ""; \
-while (defined($$l = <>) and $$l ne "\n") { \
-chomp $$l; \
-next if ($$l =~ m,^(ChangeLog$$|NEWS$$|TODO$$|debian/),); \
-if (!@files) { \
-$$pfx = $$l; \
-$$pfx =~ s,/?[^/]+$$,,; \
-} else { \
-while (length($$pfx)) { \
-$$l =~ m,^\Q$$pfx/\E, and last; \
-$$pfx =~ s,/?[^/]+$$,,; \
-} \
-} \
-push @files, $$l; \
-} \
-next if (!@files); \
-print strftime("%F %H:%M", gmtime($$date))."  ".$$author."\n\n"; \
-if (@files > 1 and ($$len = length($$pfx))) { \
-@efiles = (); \
-for $$f (@files) { push @efiles, substr($$f, $$len + 1); } \
-$$fstr = $$pfx."/: "; \
-} else { \
-@efiles = @files; \
-$$fstr = ""; \
-} \
-print wrap("\t* ", "\t  ", $$fstr.join(", ", @efiles).":")."\n"; \
-$$log =~ s, +$$,,gm; \
-$$log =~ s,^,\t,gm; \
-print $$log."\n"; \
-}
-
-$(srcdir)/.git/index:
-$(srcdir)/ChangeLog: $(srcdir)/.git/index
-   $(MAKE) log
-
-log:
-   @test -z "$(srcdir)" || cd $(srcdir) && \
-( ! test -d .git || \
-  git log --pretty=medium --date=iso --log-size --name-only 
--no-merges | \
-perl -e '$(LOG_PL)' > ChangeLog )
-
 cov-scan: clean
/opt/cov-analysis-*/bin/cov-build --dir cov-int $(MAKE)
tar cavf isync-cov.tar.xz cov-int
diff --git a/autogen.sh b/autogen.sh
index bd877a4..86518ed 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -1,4 +1,3 @@
 #! /bin/sh
 set -e -v
-make -f Makefile.am log
 autoreconf -f -i


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] tag 'v1.5.1' created

2025-03-11 Thread ossi via isync-devel
The tag 'v1.5.1' has been created at ffc0884.


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] tag 'v0.9' created

2025-03-11 Thread ossi via isync-devel
The tag 'v0.9' has been created at d2b39d2.


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] tag 'v0.9.1' created

2025-03-11 Thread ossi via isync-devel
The tag 'v0.9.1' has been created at 4390613.


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] tag 'v0.9.2' created

2025-03-11 Thread ossi via isync-devel
The tag 'v0.9.2' has been created at 5a44a33.


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel


[commit] branch 'wip/includecmd' reset

2025-03-25 Thread ossi via isync-devel
The branch 'wip/includecmd', previously at 07a1225, has been rewound by
2 revision(s) and subsequently fast-forwarded by 5 revision(s) to
aeac8e4.


___
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel