v2.2.15 released

Phil Carmody phil at dovecot.fi
Wed Oct 29 13:07:54 UTC 2014


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 at 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 at dovecot.fi>

Phil


More information about the dovecot mailing list