On 2019/02/24 13:10, Stuart Henderson wrote: > On 2019/02/24 12:21, Landry Breuil wrote: > > On Sun, Feb 24, 2019 at 10:02:08PM +1100, Stephen Gregoratto wrote: > > > Ping for visibility. > > > > > > I've been using this update on two machines for about a week now, and > > > there seems to be no loss in functionality/performance. > > > > > > Comments, OKs? > > > > Seems to work fine for me with my ruleset on 6.4. Nicholas, any opinion > > ? since you're upstream... > > I'd consider switching the port to use PCRE (diff below): > > : %%% Should I use PCRE or standard POSIX regexps? What's the difference? > : > : PCRE is a library providing "perl-compatible" regexps. These are broadly > : compatible with POSIX extended regexps, but with a number of extensions > based > : on perl regexps. > : > : Unless you want or need some of the extensions, there is generally no > : compelling reason to choose one over the other. PCRE is faster than some > : POSIX regexp implementations, but few rulesets will include sufficient > : regexps for this to make any difference. PCRE has had some security > : problems, but most regexp implementations pose a similar risk for their > : complexity if nothing else; fdm performs regexp matching as non-root in > : any case. > : > : The Debian package and FreeBSD port both use PCRE by default. > : > : Because I hate maintaining and testing two sets of code, there is a strong > : possibility that PCRE may become the fdm default at some point. > > OK sthen@ either way though.
ping... to PCRE or not to PCRE? :) > > > > Index: Makefile > =================================================================== > RCS file: /cvs/ports/mail/fdm/Makefile,v > retrieving revision 1.21 > diff -u -p -r1.21 Makefile > --- Makefile 8 Mar 2016 17:30:43 -0000 1.21 > +++ Makefile 24 Feb 2019 13:10:08 -0000 > @@ -2,8 +2,7 @@ > > COMMENT= fetch, filter and deliver mail > > -V= 1.9 > -REVISION = 0 > +V= 2.0 > DISTNAME= fdm-$V > CATEGORIES= mail > > @@ -12,13 +11,15 @@ MAINTAINER= Nicholas Marriott <nicm@open > # BSD > PERMIT_PACKAGE_CDROM= Yes > > -WANTLIB= c crypto ssl z tdb>=3.0 > +WANTLIB= c crypto pcre ssl z tdb>=3.0 > > MASTER_SITES= https://github.com/nicm/fdm/releases/download/$V/ > > -LIB_DEPENDS += databases/tdb>=1.2.7 > +LIB_DEPENDS += databases/tdb>=1.2.7 \ > + devel/pcre > > CONFIGURE_STYLE = gnu > +CONFIGURE_ARGS = --enable-pcre > > post-install: > ${INSTALL_DATA_DIR} ${PREFIX}/share/fdm > Index: distinfo > =================================================================== > RCS file: /cvs/ports/mail/fdm/distinfo,v > retrieving revision 1.11 > diff -u -p -r1.11 distinfo > --- distinfo 3 Dec 2015 14:21:33 -0000 1.11 > +++ distinfo 24 Feb 2019 13:10:08 -0000 > @@ -1,2 +1,2 @@ > -SHA256 (fdm-1.9.tar.gz) = FkFsOKmn4y0YciDMWuYaUUY9Xk5HQZxcUT9CJSPTmRQ= > -SIZE (fdm-1.9.tar.gz) = 299916 > +SHA256 (fdm-2.0.tar.gz) = BrKMtreSVwvGHX4psT0q9GuS/qd+BYsrF+Eej37QzqQ= > +SIZE (fdm-2.0.tar.gz) = 313596 > Index: patches/patch-fetch-mbox_c > =================================================================== > RCS file: patches/patch-fetch-mbox_c > diff -N patches/patch-fetch-mbox_c > --- patches/patch-fetch-mbox_c 8 Mar 2016 17:30:43 -0000 1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,64 +0,0 @@ > -Fix a bug in mbox parser. > - > -Some tools only escape "From " lines in mboxs if they follow a blank line. > fdm > -would split at lines beginning "From " unconditionally. > - > -From upstream 91df796046ee2c36bccc9cfda27860b5bb9dd36d > - > -$OpenBSD: patch-fetch-mbox_c,v 1.1 2016/03/08 17:30:43 edd Exp $ > ---- fetch-mbox.c.orig Fri Jun 5 19:30:34 2015 > -+++ fetch-mbox.c Thu Feb 18 15:30:05 2016 > -@@ -404,9 +404,9 @@ fetch_mbox_state_mail(struct account *a, struct fetch_ > - struct mail *m = fctx->mail; > - struct fetch_mbox_mbox *fmbox; > - struct fetch_mbox_mail *aux; > -- char *line, *ptr, *lptr; > -- size_t llen; > -- int flushing; > -+ char *line, *ptr, *last_line, *lptr; > -+ size_t llen, n; > -+ int flushing, from; > - > - /* Find current mbox and check for EOF. */ > - fmbox = ARRAY_ITEM(&data->fmboxes, data->index); > -@@ -443,7 +443,7 @@ fetch_mbox_state_mail(struct account *a, struct fetch_ > - * trimmed later with minimal penalty). > - */ > - flushing = 0; > -- for (;;) { > -+ for (last_line = NULL;; last_line = line) { > - /* Check for EOF. */ > - if (data->off == fmbox->size) { > - aux->size = data->off - aux->off; > -@@ -459,10 +459,27 @@ fetch_mbox_state_mail(struct account *a, struct fetch_ > - } else > - data->off += ptr - line + 1; > - > -- /* Check if the line is "From ". */ > -- if (line > fmbox->base && > -- ptr - line >= 5 && strncmp(line, "From ", 5) == 0) { > -- /* End of mail. */ > -+ /* > -+ * Check if we have reached the end of this message at the next > -+ * message's "From " line. To allow "From " inside message > -+ * bodes, they can be escaped by prepending with '>'. Some > -+ * tools escape all "From " lines; others only escape if they > -+ * immediately follow a blank line. We accept only "From" lines > -+ * which follow a blank line (\n or \r\n). > -+ */ > -+ from = 1; > -+ if (line == fmbox->base || last_line == NULL) > -+ from = 0; > -+ else { > -+ n = line - last_line; > -+ if (n != 1 && n != 2) > -+ from = 0; > -+ else if (n == 1 && *last_line != '\n') > -+ from = 0; > -+ else if (n == 2 && memcmp(last_line, "\r\n", 2) != 0) > -+ from = 0; > -+ } > -+ if (from && ptr - line >= 5 && memcmp(line, "From ", 5) == 0) { > - aux->size = (line - fmbox->base) - aux->off; > - break; > - } >
