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 <geda...@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 <p...@dovecot.fi> Phil