On Sat, Oct 25, 2014 at 04:39:29PM -0400, Gedalya wrote:
On 10/25/2014 11:43 AM, Timo Sirainen wrote:
On 25 Oct 2014, at 04:59, Gedalya gedalya@gedalya.net wrote:
Also I have one minor issue to report. dovecot broke API from 2.2.13 to 2.2.14 but it only provides version macros for the first two components of the version number. This has caused a small upgrade problem for the antispam plugin which is in a separate package (dovecot-antispam.) Was that addressed in 2.2.15? I only remember an ABI problem with antispam. Recompiling fixed that AFAIK. (And no Dovecot version guarantees ABI compatibility.) Is there some API problem also? https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765943 Oh, it uses the really old way to do things. In v1.1+ T_BEGIN { .. } T_END should have been used instead. Patch attached.
The header file could admittedly have been a little more persuasive in weaning people off the old interface.
However, it was my bad that I didn't consider the old interface may still be in use. Apologies.
OK, it's not working as it is.
This little bit seems like a typo:
- t_pop();
- } T_POP;
Gives me:
pipe.c:315:4: error: ?T_POP? undeclared (first use in this function) } T_POP;
I tried T_END and I still get:
pipe.c: In function ?backend_handle_mail?: pipe.c:314:2: error: label at end of compound statement out: ^
I got it to compile, see the attached. I don't really know C ... out:
- t_pop();
- ;
- } T_END;
That is the correct fix. C is quirky about labels, you can only label statements, nothing else. As Timo mentioned, the t_push()/t_pop() interface hasn't been the recommended interface since about 2008, so this definitely is the correct way to go.
If upstream is out there somewhere, for your patch: Acked-by: Phil Carmody phil@dovecot.fi
Phil