cyrusimap / cyrus-imapd

Cyrus IMAP is an email, contacts and calendar server
http://cyrusimap.org
Other
526 stars 145 forks source link

On 3.8 replica, sieve scripts are not in sync with their 3.2 source #4947

Open jcdelepine opened 1 month ago

jcdelepine commented 1 month ago

First replicated script is ok, but modified following ones are empty.

Initial sync : root@cyrus-backend-dev-01:~# cyrus sync_client -v -A -n replica USER test MAILBOX user.test MAILBOX user.test.Drafts MAILBOX user.test.Sent MAILBOX user.test.Templates MAILBOX user.test.Trash MAILBOX user.test.spam SIEVE test ingo.script ACTIVATE_SIEVE test ingo.bc

On the replica : root@cyrus-backend-dev-02:~# cd $(cyrus mbpath user.test.#sieve) root@cyrus-backend-dev-02:/var/spool/cyrus/mail/uuid/d/6/d6z3kq432zzq0joadi5axoih# ls -l total 4 -rw------- 1 cyrus mail 434 Jun 10 17:43 1. root@cyrus-backend-dev-02:/var/spool/cyrus/mail/uuid/d/6/d6z3kq432zzq0joadi5axoih# cat 1. From: [test@cyrus-backend-dev-02](https://webmail.u-picardie.fr/imp/dynamic.php?page=mailbox#) Subject: ingo Date: Mon, 10 Jun 2024 17:43:38 +0200 Message-ID: [95f50c14874344cef96264daeb051f0ce7fbb089@cyrus-backend-dev-02](https://webmail.u-picardie.fr/imp/dynamic.php?page=mailbox#) Content-Type: application/sieve; charset=utf-8 Content-Length: 98 Content-Disposition: attachment; filename="fc6icwnfe2u4id997reho2gm.sieve" MIME-Version: 1.0

Sieve Filter

Généré par Ingo. (http://www.horde.org/apps/ingo/) (10/06/2024, 05:02:36)

The script is modified on the source server :

root@cyrus-backend-dev-01:~# cat /var/spool/sieve/t/test/ingo.script

Sieve Filter

Généré par Ingo. (http://www.horde.org/apps/ingo/) (10/06/2024, 05:48:59)

On the replicated server : root@cyrus-backend-dev-02:/var/spool/cyrus/mail/uuid/d/6/d6z3kq432zzq0joadi5axoih# ls -l total 8 -rw------- 1 cyrus mail 434 Jun 10 17:43 1. -rw------- 1 cyrus mail 335 Jun 10 17:48 2.

root@cyrus-backend-dev-02:/var/spool/cyrus/mail/uuid/x/e/xe46krtjgvq9716luq4891dz# cat 2. From: [test@cyrus-backend-dev-02](https://webmail.u-picardie.fr/imp/dynamic.php?page=mailbox#) Subject: ingo Date: Mon, 10 Jun 2024 17:48:59 +0200 Message-ID: [da39a3ee5e6b4b0d3255bfef95601890afd80709@cyrus-backend-dev-02](https://webmail.u-picardie.fr/imp/dynamic.php?page=mailbox#) Content-Type: application/sieve; charset=utf-8 Content-Length: 0 Content-Disposition: attachment; filename="fc6icwnfe2u4id997reho2gm.sieve" MIME-Version: 1.0

(Empty script)

Tested with 3.2.12 source and both 3.6.1 and 3.8.3 replicant.

Sincerly, Jean Charles Delépine

ksmurchison commented 1 month ago

I'm unable to build v3.2.0, v3.4.0, or 3.6.0 due to both of my dev boxes (Fedora 39 & 40) having OpenSSL 3.0.

@elliefm are you able to build 3.2?

elliefm commented 1 month ago

@ksmurchison I also have OpenSSL 3.0. I think I usually set CFLAGS=-Wno-deprecated-declarations in my environment temporarily when building the older versions, and that stops it erroring about the old APIs and lets it build.... ahh here we go:

3.2 fails with:

$ cyrus-cfg && make -j4
[...]
imap/tls.c:1673:9: error: 'BIO_set_callback' is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations]
[...]

But succeeds with:

$ CFLAGS=-Wno-deprecated-declarations cyrus-cfg && make -j4

(cyrus-cfg is my wrapper script around configure so that I don't have to type all the --enable-foo every time, it sets its own CFLAGS (including the environment one if it's set) and passes those to configure such that configure locks them in for the whole build. I assume you have a similar script, but the details might differ in how you get a CFLAGS override from your shell into the build)

I definitely can't build 2.5 or earlier anymore because I don't have an old enough libical, but 3.2 and later all still build. Not sure about 3.0.

jcdelepine commented 1 month ago

Tested from self build 3.2.12 debian package and from debian's 3.2.6 to self 3.8.3 debian package with patches. sync_client -u login on 3.2 did upload the correct sieve filter.

A new script get compiled, but not an old one newly uploaded thanks to the patch. I will have a look to massievec.

dilyanpalauzov commented 1 day ago

According to the release notes for 3.8.3 and 3.6.5 the problem described here is gone.