+++ /dev/null
-From d17c6a9c34aa407d2ced8488389520903f16971f Mon Sep 17 00:00:00 2001
-From: Ron <ron@debian.org>
-Date: Sat, 25 Oct 2014 00:36:12 +1030
-Subject: Include the patch level in the dovecot version checks
-
-Dovecot broke the t_push() API for 2.2.14 so just checking the major/minor
-versions is no longer enough. Bonus points for it not actually exporting
-that version anywhere itself, so we still need to parse the full string to
-get it.
-
-There's a chance this might break some things for dovecot < 2.0 or so
-(based mostly on the theory that the patch=255 fallback coded into the
-dovecot-version.c parsing was put there for a reason), but we might be
-well past the stage of needing to worry about that now. If someone
-tests it with an earlier version and it breaks there, we'll worry about
-that when they report how and where it breaks.
-
-diff --git a/antispam-plugin.c b/antispam-plugin.c
-index 103b5fb..6ea49cf 100644
---- a/antispam-plugin.c
-+++ b/antispam-plugin.c
-@@ -70,7 +70,7 @@ static void lowercase_string(const char *in, char *out)
- }
-
- static bool mailbox_patternmatch(struct mailbox *box,
--#if DOVECOT_IS_GE(2,0)
-+#if DOVECOT_IS_GE(2,0,0)
- const struct mail_namespace *ns,
- #else
- struct mail_storage *storage,
-@@ -82,7 +82,7 @@ static bool mailbox_patternmatch(struct mailbox *box,
- int len;
- int rc;
-
--#if DOVECOT_IS_GE(2,0)
-+#if DOVECOT_IS_GE(2,0,0)
- if (ns && mailbox_get_namespace(box) != ns)
- return FALSE;
- #else
-@@ -116,7 +116,7 @@ static bool mailbox_patternmatch(struct mailbox *box,
- }
-
- static bool mailbox_patternmatch_case(struct mailbox *box,
--#if DOVECOT_IS_GE(2,0)
-+#if DOVECOT_IS_GE(2,0,0)
- const struct mail_namespace *ns,
- #else
- struct mail_storage *ns,
-@@ -127,7 +127,7 @@ static bool mailbox_patternmatch_case(struct mailbox *box,
- }
-
- static bool mailbox_patternmatch_icase(struct mailbox *box,
--#if DOVECOT_IS_GE(2,0)
-+#if DOVECOT_IS_GE(2,0,0)
- const struct mail_namespace *ns,
- #else
- struct mail_storage *ns,
-@@ -138,7 +138,7 @@ static bool mailbox_patternmatch_icase(struct mailbox *box,
- }
-
- static bool _mailbox_equals(struct mailbox *box,
--#if DOVECOT_IS_GE(2,0)
-+#if DOVECOT_IS_GE(2,0,0)
- const struct mail_namespace *ns,
- #else
- struct mail_storage *ns,
-@@ -149,7 +149,7 @@ static bool _mailbox_equals(struct mailbox *box,
- }
-
- typedef bool (*match_fn_t)(struct mailbox *,
--#if DOVECOT_IS_GE(2,0)
-+#if DOVECOT_IS_GE(2,0,0)
- const struct mail_namespace *,
- #else
- struct mail_storage *,
-@@ -187,7 +187,7 @@ static bool mailbox_in_list(struct mailbox *box, char ** const * patterns)
-
- while (*list) {
- if (match_info[i].fn(box,
--#if DOVECOT_IS_GE(2,0)
-+#if DOVECOT_IS_GE(2,0,0)
- mailbox_get_namespace(box),
- #else
- mailbox_get_storage(box),
-@@ -374,7 +374,7 @@ void antispam_free_config(struct antispam_config *cfg)
- i_free(cfg);
- }
-
--#if DOVECOT_IS_GE(2,0)
-+#if DOVECOT_IS_GE(2,0,0)
- void PLUGIN_FUNCTION(init)(struct module *module)
- {
- antispam_storage_init(module);
-@@ -392,7 +392,7 @@ void PLUGIN_FUNCTION(deinit)(void)
- }
-
- /* put dovecot version we built against into plugin for checking */
--#ifdef DOVECOT_ABI_VERSION
-+#if DOVECOT_IS_GE(2,2,0)
- const char *PLUGIN_FUNCTION(version) = DOVECOT_ABI_VERSION;
- #else
- const char *PLUGIN_FUNCTION(version) = PACKAGE_VERSION;
-diff --git a/antispam-plugin.h b/antispam-plugin.h
-index a06f7be..724ab5e 100644
---- a/antispam-plugin.h
-+++ b/antispam-plugin.h
-@@ -4,7 +4,7 @@
- #include "lib.h"
- #include "str.h"
- #include "dovecot-version.h"
--#if DOVECOT_IS_GE(2, 0)
-+#if DOVECOT_IS_GE(2,0,0)
- #include "imap-client.h"
- #else
- #include "client.h"
-@@ -186,7 +186,7 @@ void antispam_free_config(struct antispam_config *cfg);
- /*
- * Dovecot version compat code
- */
--#if DOVECOT_IS_EQ(1, 0)
-+#if DOVECOT_IS_GE(1,0,0) && DOVECOT_IS_LT(1,1,0)
- #define module_arg void
- #define ATTR_UNUSED __attr_unused__
- #define mempool_unref(x) pool_unref(*(x))
-@@ -217,7 +217,7 @@ static inline int _mail_get_stream(struct mail *mail,
- return 0;
- }
- #define mail_get_stream _mail_get_stream
--#elif DOVECOT_IS_EQ(1, 1)
-+#elif DOVECOT_IS_GE(1,1,0) && DOVECOT_IS_LT(1,2,0)
- #define mempool_unref pool_unref
- #define module_arg void
- #define ME(err) MAIL_ERROR_ ##err,
-@@ -236,7 +236,7 @@ o_stream_create_from_fd(int fd, pool_t pool ATTR_UNUSED)
- {
- return o_stream_create_fd(fd, 0, TRUE);
- }
--#elif DOVECOT_IS_EQ(1, 2)
-+#elif DOVECOT_IS_GE(1,2,0) && DOVECOT_IS_LT(2,0,0)
- #define mempool_unref pool_unref
- #define module_arg void
- #define ME(err) MAIL_ERROR_ ##err,
-@@ -255,7 +255,7 @@ o_stream_create_from_fd(int fd, pool_t pool ATTR_UNUSED)
- {
- return o_stream_create_fd(fd, 0, TRUE);
- }
--#elif DOVECOT_IS_EQ(2, 0) || DOVECOT_IS_EQ(2, 1)
-+#elif DOVECOT_IS_GE(2,0,0) && DOVECOT_IS_LT(2,2,0)
- #define mempool_unref pool_unref
- #define module_arg struct module *
- #define ME(err) MAIL_ERROR_ ##err,
-@@ -277,7 +277,7 @@ o_stream_create_from_fd(int fd, pool_t pool ATTR_UNUSED)
- {
- return dict_init(uri, DICT_DATA_TYPE_STRING, username, NULL);
- }
--#elif DOVECOT_IS_EQ(2, 2)
-+#elif DOVECOT_IS_GE(2,2,0)
- #define mempool_unref pool_unref
- #define module_arg struct module *
- #define ME(err) MAIL_ERROR_ ##err,
-diff --git a/dovecot-version.c b/dovecot-version.c
-index e7e7cf2..a9f980a 100644
---- a/dovecot-version.c
-+++ b/dovecot-version.c
-@@ -40,19 +40,19 @@ int main(int argc, char **argv)
- printf("/* Auto-generated file, do not edit */\n\n");
- printf("#define DOVECOT_VERSION_CODE(maj, min, patch) "
- "((maj)<<16 | ((min)<<8) | (patch))\n\n");
--
-+
- printf("#define DOVECOT_VCODE "
-- "0x%.2x%.2x%.2x\n", maj, min, 0);
-- printf("#define DOVECOT_IS_EQ(maj, min) "
-- "DOVECOT_VCODE == DOVECOT_VERSION_CODE(maj, min, 0)\n");
-- printf("#define DOVECOT_IS_GT(maj, min) "
-- "DOVECOT_VCODE > DOVECOT_VERSION_CODE(maj, min, 0)\n");
-- printf("#define DOVECOT_IS_GE(maj, min) "
-- "DOVECOT_VCODE >= DOVECOT_VERSION_CODE(maj, min, 0)\n");
-- printf("#define DOVECOT_IS_LT(maj, min) "
-- "DOVECOT_VCODE < DOVECOT_VERSION_CODE(maj, min, 0)\n");
-- printf("#define DOVECOT_IS_LE(maj, min) "
-- "DOVECOT_VCODE <= DOVECOT_VERSION_CODE(maj, min, 0)\n");
-+ "0x%.2x%.2x%.2x\n", maj, min, patch);
-+ printf("#define DOVECOT_IS_EQ(maj, min, patch) "
-+ "DOVECOT_VCODE == DOVECOT_VERSION_CODE(maj, min, patch)\n");
-+ printf("#define DOVECOT_IS_GT(maj, min, patch) "
-+ "DOVECOT_VCODE > DOVECOT_VERSION_CODE(maj, min, patch)\n");
-+ printf("#define DOVECOT_IS_GE(maj, min, patch) "
-+ "DOVECOT_VCODE >= DOVECOT_VERSION_CODE(maj, min, patch)\n");
-+ printf("#define DOVECOT_IS_LT(maj, min, patch) "
-+ "DOVECOT_VCODE < DOVECOT_VERSION_CODE(maj, min, patch)\n");
-+ printf("#define DOVECOT_IS_LE(maj, min, patch) "
-+ "DOVECOT_VCODE <= DOVECOT_VERSION_CODE(maj, min, patch)\n");
-
- /* Use the antispam-storage-2.0.c for dovecot 2.1 and 2.2 as well */
- if (maj == 2 && min < 3)
---
-cgit v0.10.2
-
-From 2aa93d15409f5a47589d264991fd3e8261d34b1b Mon Sep 17 00:00:00 2001
-From: Ron <ron@debian.org>
-Date: Sat, 25 Oct 2014 00:47:21 +1030
-Subject: Add a compatibility macro for t_push()
-
-This should fix things for the API change in dovecot 2.2.14 reported in:
-https://bugs.debian.org/765943
-
-diff --git a/antispam-plugin.h b/antispam-plugin.h
-index 724ab5e..939e27e 100644
---- a/antispam-plugin.h
-+++ b/antispam-plugin.h
-@@ -299,6 +299,10 @@ o_stream_create_from_fd(int fd, pool_t pool ATTR_UNUSED)
- #define module_arg struct module *
- #define ME(err) MAIL_ERROR_ ##err,
-
-+#if DOVECOT_IS_GE(2,2,14)
-+#define t_push() t_push(__func__)
-+#endif
-+
- static inline const char *const *
- get_mail_headers(struct mail *mail, const char *hdr)
- {
---
-cgit v0.10.2
-