Date: Mon, 1 Jun 2009 03:13:30 +0200 (CEST) From: Matthias Andree <matthias.andree@gmx.de> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/135149: [MAINTAINER] mail/bogofilter: fix q-p decoding and parallel build bugs Message-ID: <20090601011330.9076234127@rho.emma.line.org> Resent-Message-ID: <200906011040.n51Ae1Aq099106@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 135149 >Category: ports >Synopsis: [MAINTAINER] mail/bogofilter: fix q-p decoding and parallel build bugs >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Mon Jun 01 10:40:01 UTC 2009 >Closed-Date: >Last-Modified: >Originator: Matthias Andree >Release: FreeBSD 7.1-RELEASE-p2 i386 >Organization: >Environment: System: FreeBSD rho.emma.line.org 7.1-RELEASE-p2 FreeBSD 7.1-RELEASE-p2 #0: Sun Jan 18 05:55:08 CET 2009 >Description: Update to late May SVN snapshot to - fix quoted-printable decoding in the presence of excess CR characters (continuation lines) - fix parallel build by removing two files that were accidentally shipped Added file(s): - files/patch-fixqp Removed file(s): - files/patch-src-tests-tframe Generated with FreeBSD Port Tools 0.77 >How-To-Repeat: >Fix: --- bogofilter-1.2.0_2.patch begins here --- diff -ruN --exclude=CVS /usr/ports/mail/bogofilter/Makefile /usr/home/emma/ports/mail/bogofilter/Makefile --- /usr/ports/mail/bogofilter/Makefile 2009-05-29 06:26:22.000000000 +0200 +++ /usr/home/emma/ports/mail/bogofilter/Makefile 2009-06-01 03:11:46.000000000 +0200 @@ -7,7 +7,7 @@ PORTNAME= bogofilter PORTVERSION= 1.2.0 -PORTREVISION?= 1 +PORTREVISION?= 2 CATEGORIES?= mail MASTER_SITES= SF @@ -27,15 +27,12 @@ USE_BZIP2= yes USE_PERL5_RUN= yes GNU_CONFIGURE= yes -PATCH_STRIP= -p1 MAKE_JOBS_SAFE= yes +USE_AUTOTOOLS= aclocal:110 automake:110 autoconf:262 autoheader:262 +ACLOCAL_ARGS= -Im4 .include <bsd.port.pre.mk> -.if ${ARCH} == "sparc64" -BROKEN= Fails self-tests on sparc64 -.endif - BF_LIBS?= -l${BDB_LIB_NAME} BF_CPPFLAGS?= -I${BDB_INCLUDE_DIR} -I${LOCALBASE}/include CONFIGURE_ARGS+= --sysconfdir=${PREFIX}/etc @@ -56,6 +53,11 @@ MAN1= bogofilter.1 bogoutil.1 bogoupgrade.1 bogolexer.1 bogotune.1 \ bf_copy.1 bf_compact.1 bf_tar.1 +# remove files that were accidentally shipped, but should get rebuilt +post-extract: + ${RM} ${WRKSRC}/src/bogoupgrade + ${RM} ${WRKSRC}/src/tests/t.query.config + post-patch: ${REINPLACE_CMD} -e 's|^#!.*perl|#! ${PERL}|' \ ${WRKSRC}/src/tests/unsort.pl \ diff -ruN --exclude=CVS /usr/ports/mail/bogofilter/files/patch-fixqp /usr/home/emma/ports/mail/bogofilter/files/patch-fixqp --- /usr/ports/mail/bogofilter/files/patch-fixqp 1970-01-01 01:00:00.000000000 +0100 +++ /usr/home/emma/ports/mail/bogofilter/files/patch-fixqp 2009-06-01 02:48:28.000000000 +0200 @@ -0,0 +1,305 @@ +Index: src/version.sh +=================================================================== +--- src/version.sh (revision 6820) ++++ src/version.sh (revision 6838) +@@ -4,8 +4,8 @@ + # + # create version.c to define BOGOFILTER_VERSION + # +-# if VERSION in config.h does not contain 'cvs', use its value. +-# if it does contain 'cvs', append a date to it. ++# if VERSION in config.h does not contain 'svn', use its value. ++# if it does contain 'svn', append a date to it. + # + # We'll first try to find CVS/Entries files and use the most + # current date from the files. To parse, we need Perl 5 and +Index: src/tests/inputs/mime-qp-cont-with-cr.txt +=================================================================== +--- src/tests/inputs/mime-qp-cont-with-cr.txt (revision 0) ++++ src/tests/inputs/mime-qp-cont-with-cr.txt (revision 6838) +@@ -0,0 +1,31 @@ ++Subject: This is a test message to check bogofilter's qp decoding of ++ continuation lines in the presence of spurious CR characters. ++MIME-Version: 1.0 ++Content-Type: multipart/alternative; ++ boundary="----=_NextPart_000_0007_01C9DC27.B9F73130" ++ ++This is a multi-part message in MIME format. ++ ++------=_NextPart_000_0007_01C9DC27.B9F73130 ++Content-Type: text/html; ++ charset="iso-8859-2" ++Content-Transfer-Encoding: quoted-printable ++ ++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> ++<HTML><HEAD> ++<META http-equiv=3DContent-Type content=3D"text/html; charset=3Diso-8859-2"= ++> ++<META content=3D"MSHTML 6.00.2800.1506" name=3DGENERATOR> ++<STYLE></STYLE> ++</HEAD> ++<BODY> ++<DIV align=3Dcenter><FONT face=3DArial size=3D2>50mg x 10 pills $6.00 per p= ++ill</FONT></DIV> ++<DIV align=3Dcenter><FONT face=3DArial size=3D2></FONT> </DIV> ++<DIV align=3Dcenter><FONT face=3DArial size=3D2> ++<A href=3D"http://groups.yahoo.com/group/ganebawusexut64/message/1">Visit h= ++ere</A></FONT></DIV> ++</BODY></HTML> ++ ++------=_NextPart_000_0007_01C9DC27.B9F73130-- ++ + +Property changes on: src/tests/inputs/mime-qp-cont-with-cr.txt +___________________________________________________________________ +Added: svn:eol-style + + native + +Index: src/tests/t.frame +=================================================================== +--- src/tests/t.frame (revision 6820) ++++ src/tests/t.frame (revision 6838) +@@ -39,7 +39,7 @@ + export _POSIX2_VERSION + + # Obtain data base file suffix +-DB_NAME=$("$BOGOFILTER" -C -V 2>&1 | sed -n '/Database:/ { p;q }') ++DB_NAME=$("$BOGOFILTER" -C -V 2>&1 | sed -n '/Database:/ {p;q;}') + case $DB_NAME in + *BerkeleyDB*|*"Berkeley DB"*) + case $DB_NAME in +Index: src/tests/outputs/mime-qp-cont-with-cr.exp +=================================================================== +--- src/tests/outputs/mime-qp-cont-with-cr.exp (revision 0) ++++ src/tests/outputs/mime-qp-cont-with-cr.exp (revision 6838) +@@ -0,0 +1,50 @@ ++subj:This ++subj:test ++subj:message ++subj:check ++subj:bogofilter's ++subj:decoding ++subj:continuation ++subj:lines ++subj:the ++subj:presence ++subj:spurious ++subj:characters ++head:MIME-Version ++head:Content-Type ++head:multipart ++head:alternative ++This ++multi-part ++message ++MIME ++format ++mime:Content-Type ++mime:text ++mime:html ++mime:charset ++mime:iso-8859-2 ++mime:Content-Transfer-Encoding ++mime:quoted-printable ++face ++Arial ++size ++pills ++$6.00 ++per ++pill ++face ++Arial ++size ++nbsp ++face ++Arial ++size ++href ++http ++groups.yahoo.com ++group ++ganebawusexut64 ++message ++Visit ++here +Index: src/tests/t.lexer.qpcr +=================================================================== +--- src/tests/t.lexer.qpcr (revision 0) ++++ src/tests/t.lexer.qpcr (revision 6838) +@@ -0,0 +1,16 @@ ++#! /bin/sh ++ ++# This check sees if bogofilter can reassemble lines with spurious CR ++# during QP decoding. It used to fail up to and including 1.2.0 with ++# lines ending in =<CR>, not considering these as continuation. ++ ++. ${srcdir:=.}/t.frame ++ ++ifn=mime-qp-cont-with-cr.txt ++ofn=mime-qp-cont-with-cr.out ++efn=mime-qp-cont-with-cr.exp ++ ++cat "$srcdir/inputs/$ifn" \ ++| $BOGOLEXER -p -C > "$TMPDIR/$ofn" ++ ++exec diff $DIFF_BRIEF "$OUTPUTS/$efn" "$TMPDIR/$ofn" +Index: src/tests/Makefile.am +=================================================================== +--- src/tests/Makefile.am (revision 6820) ++++ src/tests/Makefile.am (revision 6838) +@@ -38,7 +38,7 @@ + t.passthrough-hb \ + t.escaped.html t.escaped.url \ + t.split t.parsing \ +- t.lexer t.lexer.mbx \ ++ t.lexer t.lexer.mbx t.lexer.qpcr \ + t.spam.header.place \ + t.block.on.subnets \ + t.token.count \ +@@ -49,16 +49,19 @@ + + WORDLIST_TESTS = t.dump.load t.nonascii.replace t.maint t.robx t.regtest t.upgrade.subnet.prefix t.multiple.wordlists t.probe t.bf_compact + +-SCORING_TESTS = t.query.config t.score1 t.score2 t.systest t.grftest t.wordhist ++SCORING_TESTS = t.score1 t.score2 t.systest t.grftest t.wordhist + + BULKMODE_TESTS = t.bulkmode t.MH t.maildir t.bogoutil + + INTEGRITY_TESTS = t.lock1 t.lock3 t.valgrind + # INTEGRITY_TESTS += t.lock2 + ++# these tests are built, but must not be shipped: ++BUILT_TESTS = t.query.config ++ + TESTSCRIPTS = ${ENVIRON_TESTS} ${PARSING_TESTS} ${WORDLIST_TESTS} ${SCORING_TESTS} ${BULKMODE_TESTS} ${INTEGRITY_TESTS} + +-TESTS=$(TESTSCRIPTS) ++TESTS=$(BUILT_TESTS) $(TESTSCRIPTS) + + TESTS_ENVIRONMENT=RUN_FROM_MAKE=1 AWK=$(AWK) srcdir=$(srcdir) SHELL="$(SHELL)" $(SHELL) $(VERBOSE) + +@@ -73,6 +76,7 @@ + inputs/lexer.inp \ + inputs/lexer.mbx \ + inputs/lexer.out \ ++ inputs/mime-qp-cont-with-cr.txt \ + inputs/msg.1.txt \ + inputs/msg.2.txt \ + inputs/msg.3.txt \ +@@ -103,6 +107,7 @@ + outputs/maildir.out \ + outputs/message_addr.ref \ + outputs/message_id.ref \ ++ outputs/mime-qp-cont-with-cr.exp \ + outputs/msg.1.v \ + outputs/msg.2a.vv \ + outputs/msg.2a.vvv \ +Index: src/Makefile.am +=================================================================== +--- src/Makefile.am (revision 6820) ++++ src/Makefile.am (revision 6838) +@@ -254,8 +254,7 @@ + fgetsl_test_CFLAGS= -DMAIN + + # what to distribute +-EXTRA_DIST = $(bin_SCRIPTS) \ +- bogoupgrade.in \ ++EXTRA_DIST = bogoupgrade.in \ + version.sh \ + strlcat.3 strlcpy.3 \ + patch.lexer.254.txt patch.lexer.253x.txt +Index: src/qp.c +=================================================================== +--- src/qp.c (revision 6820) ++++ src/qp.c (revision 6838) +@@ -41,6 +41,10 @@ + } + } + ++/* Function Prototypes */ ++ ++static int qp_eol_check(byte *s, byte *e); ++ + /* Function Definitions */ + + uint qp_decode(word_t *word, qp_mode mode) +@@ -56,10 +60,13 @@ + int x, y; + switch (ch) { + case '=': +- if (mode == RFC2045 && s + 1 <= e && s[0] == '\n') { +- /* continuation line, trailing = */ +- s++; +- continue; ++ if (mode == RFC2045) { ++ int c = qp_eol_check(s, e); ++ if (c != 0) { ++ /* continuation line, trailing = */ ++ s += c; ++ continue; ++ } + } + if (s + 2 <= e && + (y = hex_to_bin(s[0])) >= 0 && (x = hex_to_bin(s[1])) >= 0) { +@@ -129,3 +136,22 @@ + + return true; + } ++ ++static int qp_eol_check(byte *s, byte *e) ++{ ++ if (s + 1 <= e) { ++ /* test for LF */ ++ if (s[0] == '\n') ++ { ++ /* only LF */ ++ return 1; ++ } ++ ++ if (s[0] == '\r' ++ && s + 2 <= e && s[1] == '\n') ++ /* CR LF */ ++ return 2; ++ } ++ ++ return 0; ++} +Index: NEWS +=================================================================== +--- NEWS (revision 6820) ++++ NEWS (revision 6838) +@@ -15,8 +15,19 @@ + + ------------------------------------------------------------------------------- + +-1.2.0 2009-02-21 (released) ++ 2009-05-28 ++ * Removed two scripts that are auto-built. ++ * Added test case for Stephen Davies' Q-P EOL problem (see below). + ++ 2009-05-25 ++ * Fixed EOL problem in quoted_printable text. Problem reported by ++ Stephen Davies and identified by Pavel Kankovsky. ++ ++ 2009-03-28 ++ * Promoted to "stable" ++ ++1.2.0 2009-02-21 (released) ++ + 2009-02-20 + * Flex-2.5.35 has fix for memory allocation problem in 2.5.4, + 2.5.31, and 2.5.33, making bogofilter's flex patch obsolete. +@@ -70,8 +81,11 @@ + systems to do that are reported to be shipped in 1987 by the autoconf + manual, so ditch them. + +-1.1.7 2008-05-04 (released) ++ 2008-05-18 ++ * Promoted to "stable" + ++1.1.7 2008-05-04 (released) ++ + 2008-04-30 + + * Updated sendmail milter contrib/bogofilter-milter.pl to v1.45 diff -ruN --exclude=CVS /usr/ports/mail/bogofilter/files/patch-src-tests-tframe /usr/home/emma/ports/mail/bogofilter/files/patch-src-tests-tframe --- /usr/ports/mail/bogofilter/files/patch-src-tests-tframe 2009-05-13 10:49:42.000000000 +0200 +++ /usr/home/emma/ports/mail/bogofilter/files/patch-src-tests-tframe 1970-01-01 01:00:00.000000000 +0100 @@ -1,8 +0,0 @@ ---- ./src/tests/t.frame -+++ ./src/tests/t.frame -@@ -41,4 +41,4 @@ - # Obtain data base file suffix --DB_NAME=$("$BOGOFILTER" -C -V 2>&1 | sed -n '/Database:/ { p;q }') -+DB_NAME=$("$BOGOFILTER" -C -V 2>&1 | sed -n '/Database:/ {p;q;}') - case $DB_NAME in - *BerkeleyDB*|*"Berkeley DB"*) --- bogofilter-1.2.0_2.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090601011330.9076234127>