git: 507cbd804002 - main - mail/bogofilter-bdb: Remove expired port.

From: Matthias Andree <mandree_at_FreeBSD.org>
Date: Mon, 30 Jun 2025 13:52:09 UTC
The branch main has been updated by mandree:

URL: https://cgit.FreeBSD.org/ports/commit/?id=507cbd804002f1606b6636bf0d02177eeb471ea4

commit 507cbd804002f1606b6636bf0d02177eeb471ea4
Author:     Matthias Andree <mandree@FreeBSD.org>
AuthorDate: 2025-06-30 13:50:48 +0000
Commit:     Matthias Andree <mandree@FreeBSD.org>
CommitDate: 2025-06-30 13:52:05 +0000

    mail/bogofilter-bdb: Remove expired port.
    
    We had to transfer and clean up a few bits from bogofilter-bdb
    to bogofilter (the LMDB) based port, and I am also adding an UPDATING
    entry.
---
 MOVED                                              |   1 +
 UPDATING                                           |  14 +++
 mail/Makefile                                      |   1 -
 mail/bogofilter-bdb/Makefile                       | 103 ---------------------
 mail/bogofilter-kc/Makefile                        |   5 +-
 mail/bogofilter-sqlite/Makefile                    |   5 +-
 mail/bogofilter/Makefile                           | 101 +++++++++++++++++---
 mail/{bogofilter-bdb => bogofilter}/distinfo       |   0
 .../files/patch-contrib__trainbogo.sh              |   0
 mail/{bogofilter-bdb => bogofilter}/pkg-descr      |   8 +-
 mail/{bogofilter-bdb => bogofilter}/pkg-install    |   0
 mail/{bogofilter-bdb => bogofilter}/pkg-plist      |   0
 12 files changed, 114 insertions(+), 124 deletions(-)

diff --git a/MOVED b/MOVED
index 5221ec0a11b6..f9e37d06df74 100644
--- a/MOVED
+++ b/MOVED
@@ -4615,3 +4615,4 @@ devel/libmimedir||2025-06-30|Has expired: Last release in 2008, no consumers in
 devel/py-openapi-codec|devel/py-openapi-core|2025-06-30|Has expired: Upstream archived the repository. Please use devel/py-openapi-core instead
 devel/linenoise-ng||2025-06-30|Has expired: Upstream repo archived Oct 28, 2020
 devel/libflatarray||2025-06-30|Has expired: Last activity from upstream 5 years ago and last release in 2016
+devel/bogofilter-bdb||2025-06-30|Has expired: The Berkeley DB interface is obsolete. Read UPDATING and use one of the other devel/bogofilter* ports instead
diff --git a/UPDATING b/UPDATING
index b7bfe6eb39d9..237fd119a580 100644
--- a/UPDATING
+++ b/UPDATING
@@ -5,6 +5,20 @@ they are unavoidable.
 You should get into the habit of checking this file for changes each time
 you update your ports collection, before attempting any port upgrades.
 
+20250630:
+  AFFECTS: users of mail/bogofilter-bdb
+  AUTHOR: mandree@FreeBSD.org
+
+  The mail/bogofilter-bdb port has expired and will be removed.
+  
+  1. BEFORE uninstallation or changing to a different mail/bogofilter*
+  variant, please use bogoutil to export all user data bases (wordlist.db)
+  to text files, bogoutil has a -d option for that.
+  2. ONLY THEN install a different variant. The base port (bogofilter)
+  uses LMDB, the -kc variant uses KyotoCabinet and -sqlite uses SQLite3
+  for their database backends.
+  3. THEN re-import the word list for each user with bogoutil -l.
+
 20250629:
   AFFECTS: users of japanese/anthy
   AUTHOR: nobutaka@FreeBSD.org
diff --git a/mail/Makefile b/mail/Makefile
index 6f131336d2d5..ca02b3d15a74 100644
--- a/mail/Makefile
+++ b/mail/Makefile
@@ -29,7 +29,6 @@
     SUBDIR += bincimap
     SUBDIR += bmf
     SUBDIR += bogofilter
-    SUBDIR += bogofilter-bdb
     SUBDIR += bogofilter-kc
     SUBDIR += bogofilter-sqlite
     SUBDIR += bsd-vacation
diff --git a/mail/bogofilter-bdb/Makefile b/mail/bogofilter-bdb/Makefile
deleted file mode 100644
index 1df1e8961d78..000000000000
--- a/mail/bogofilter-bdb/Makefile
+++ /dev/null
@@ -1,103 +0,0 @@
-PORTNAME=	bogofilter
-DISTVERSION=	1.3.0.rc1
-PORTREVISION?=	0
-CATEGORIES?=	mail
-MASTER_SITES=	SF/bogofilter/bogofilter-current/bogofilter-1.3.0.beta/ \
-		https://gitlab.com/-/project/12408342/uploads/647db3bd2f28a1f91bdd3bb1945d91fe/
-PKGNAMESUFFIX?=	-bdb
-
-MAINTAINER?=	mandree@FreeBSD.org
-COMMENT=	Fast, teachable, learning spam detector
-WWW=		https://bogofilter.sourceforge.io/
-
-LICENSE=	GPLv2
-
-.if !defined(MASTERDIR) || ${MASTERDIR} == ${.CURDIR}
-# building master port
-USES+=		bdb:5+
-DEPRECATED=	The Berkeley DB database interface is obsolescent.
-EXPIRATION_DATE=2025-06-30
-IGNORE=		This port has expired. Once its infrastructure will have moved out the base port (LMDB), it will be removed
-.endif
-
-OPTIONS_DEFINE=		GSL UNICODE DOCS
-OPTIONS_DEFAULT=	GSL UNICODE
-GSL_DESC=		Link with system-wide GSL dynamically (recommended)
-UNICODE_DESC=		Normalize tokens to Unicode (UTF-8) (recommended)
-
-CONFLICTS_INSTALL?=	bogofilter-sqlite bogofilter bogofilter-kc
-
-USES+=		cpe perl5 shebangfix tar:xz
-SHEBANG_FILES=	contrib/randomtrain.sh contrib/scramble.sh \
-		src/tests/unsort.pl contrib/*.pl
-USE_PERL5=	run
-GNU_CONFIGURE=	yes
-
-CPE_VENDOR=	bogofilter_project
-
-UNICODE_USES=	iconv
-UNICODE_CONFIGURE_ENABLE=	unicode
-GSL_LIB_DEPENDS=	libgsl.so:math/gsl
-GSL_CONFIGURE_OFF=	--with-included-gsl
-
-PORTDOCS=	*
-
-TEST_TARGET=	check
-
-.include <bsd.port.pre.mk>
-
-BF_LIBS?=		-l${BDB_LIB_NAME}
-BF_CPPFLAGS?=		-I${BDB_INCLUDE_DIR} -I${LOCALBASE}/include
-CONFIGURE_ARGS+=	--sysconfdir=${PREFIX}/etc
-.if !defined(MASTERDIR) || ${MASTERDIR} == ${.CURDIR}
-CONFIGURE_ARGS+=	--with-database=db
-.endif
-.if ${PORT_OPTIONS:MUNICODE}
-BF_LIBS+=		${ICONV_LIB}
-.endif
-CPPFLAGS+=	${BF_CPPFLAGS}
-LIBS+=		-L${LOCALBASE}/lib ${BF_LIBS}
-CONFIGURE_ENV+=	PERL="${PERL}"
-INSTALL_TARGET=	install-strip prefix=${PREFIX} mandir=${PREFIX}/share/man
-
-post-patch:
-	${REINPLACE_CMD} -e 's/INTEGRITY_TESTS = t.lock1 t.lock3 t.valgrind/INTEGRITY_TESTS = t.lock1/' \
-		-e 's/ENVIRON_TESTS = t.abort/ENVIRON_TESTS =/' \
-		${WRKSRC}/src/tests/Makefile.in
-
-post-build:
-	cd ${WRKSRC}/src && ${SETENVI} SHELL=${SH} ${MAKE_CMD} ${TEST_TARGET} ${_MAKE_JOBS} SHELL=${SH} \
-		|| { r=$$? ; head -n30000 ${WRKSRC}/src/tests/test-suite.log ; exit $$r ; }
-
-post-install:
-	@${MKDIR} ${STAGEDIR}${DOCSDIR}/contrib
-.for i in html programmer xml
-	@${MKDIR} ${STAGEDIR}${DOCSDIR}/${i}
-.endfor
-.for i in AUTHORS COPYING INSTALL NEWS README README.git \
-	doc/README.validation TODO GETTING.STARTED \
-	RELEASE.NOTES doc/README.db doc/README.sqlite \
-	doc/integrating-with-postfix doc/integrating-with-qmail \
-	doc/bogofilter-tuning.HOWTO.html doc/bogofilter-SA-* \
-	doc/bogofilter-faq.html doc/bogofilter-faq-fr.html
-	  ${INSTALL_DATA} ${WRKSRC}/${i} ${STAGEDIR}${DOCSDIR}
-.endfor
-.for i in README.randomtrain README.contrib
-	${INSTALL_DATA} ${WRKSRC}/contrib/${i} ${STAGEDIR}${DOCSDIR}/contrib/${i}
-.endfor
-	${INSTALL_DATA} ${WRKSRC}/doc/*.html ${STAGEDIR}${DOCSDIR}/html
-	${INSTALL_DATA} ${WRKSRC}/doc/*.xml ${STAGEDIR}${DOCSDIR}/xml
-	${INSTALL_DATA} ${WRKSRC}/doc/programmer/README.freebsd ${STAGEDIR}${DOCSDIR}/programmer
-	${INSTALL_PROGRAM} ${WRKSRC}/bogogrep ${STAGEDIR}${PREFIX}/bin/
-.for i in bfproxy.pl bogofilter-milter.pl bogo.R bogofilter-qfe.sh \
-		mime.get.rfc822.pl parmtest.sh printmaildir.pl \
-		bogominitrain.pl \
-		randomtrain.sh scramble.sh spamitarium.pl stripsearch.pl trainbogo.sh
-	  ${INSTALL_SCRIPT} ${WRKSRC}/contrib/${i} ${STAGEDIR}${DOCSDIR}/contrib/${i}
-.endfor
-.for i in dot-qmail-bogofilter-default \
-	mailfilter.example vm-bogofilter.el
-	${INSTALL_DATA} ${WRKSRC}/contrib/${i} ${STAGEDIR}${DOCSDIR}/contrib/${i}
-.endfor
-
-.include <bsd.port.post.mk>
diff --git a/mail/bogofilter-kc/Makefile b/mail/bogofilter-kc/Makefile
index e434c2b59f3a..5c4ca40aee65 100644
--- a/mail/bogofilter-kc/Makefile
+++ b/mail/bogofilter-kc/Makefile
@@ -4,16 +4,17 @@ CATEGORIES=	mail
 PKGNAMESUFFIX=	-kc
 
 MAINTAINER=	mandree@FreeBSD.org
+COMMENT=	Fast, teachable, learning spam detector (KyotoCabinet database)
 
 LIB_DEPENDS=	libkyotocabinet.so:databases/kyotocabinet
 
-CONFLICTS_INSTALL=	bogofilter bogofilter-lmdb bogofilter-sqlite
+CONFLICTS_INSTALL=	bogofilter bogofilter-bdb bogofilter-sqlite  # bogofilter-bdb is historic, but let's keep this for a while
 
 CONFIGURE_ARGS=	--with-database=kyotocabinet
 BF_CPPFLAGS=	-I${LOCALBASE}/include
 BF_LIBS=
 DESCR=		${PKGDIR}/pkg-descr
 
-MASTERDIR=	${.CURDIR}/../bogofilter-bdb
+MASTERDIR=	${.CURDIR}/../bogofilter
 
 .include "${MASTERDIR}/Makefile"
diff --git a/mail/bogofilter-sqlite/Makefile b/mail/bogofilter-sqlite/Makefile
index e855c9d8d26c..11e109b94c9d 100644
--- a/mail/bogofilter-sqlite/Makefile
+++ b/mail/bogofilter-sqlite/Makefile
@@ -4,15 +4,16 @@ CATEGORIES=	mail
 PKGNAMESUFFIX=	-sqlite
 
 MAINTAINER=	mandree@FreeBSD.org
+COMMENT?=	Fast, teachable, learning spam detector (SQLite3 database)
 
 USES=		sqlite
-CONFLICTS_INSTALL=	bogofilter bogofilter-lmdb bogofilter-kc
+CONFLICTS_INSTALL=	bogofilter bogofilter-bdb bogofilter-kc  # bogofilter-bdb is historic, but let's keep this for a while
 
 CONFIGURE_ARGS=	--with-database=sqlite
 BF_CPPFLAGS=	-I${LOCALBASE}/include
 BF_LIBS=
 DESCR=		${PKGDIR}/pkg-descr
 
-MASTERDIR=	${.CURDIR}/../bogofilter-bdb
+MASTERDIR=	${.CURDIR}/../bogofilter
 
 .include "${MASTERDIR}/Makefile"
diff --git a/mail/bogofilter/Makefile b/mail/bogofilter/Makefile
index 6d2eadbb372f..71840682b8f6 100644
--- a/mail/bogofilter/Makefile
+++ b/mail/bogofilter/Makefile
@@ -1,19 +1,96 @@
 PORTNAME=	bogofilter
-PORTREVISION=	0
-CATEGORIES=	mail
-PKGNAMESUFFIX=	# blank, to override bogofilter-bdb's
+DISTVERSION=	1.3.0.rc1
+PORTREVISION?=	0
+CATEGORIES?=	mail
+MASTER_SITES=	SF/bogofilter/bogofilter-current/bogofilter-1.3.0.beta/ \
+		https://gitlab.com/-/project/12408342/uploads/647db3bd2f28a1f91bdd3bb1945d91fe/
+PKGNAMESUFFIX?=	# blank by default, and ?= so slave ports can override
 
-MAINTAINER=	mandree@FreeBSD.org
+MAINTAINER?=	mandree@FreeBSD.org
+COMMENT?=	Fast, teachable, learning spam detector (LMDB database)
+WWW=		https://bogofilter.sourceforge.io/
 
-LIB_DEPENDS=	liblmdb.so:databases/lmdb
+LICENSE=	GPLv2
 
-CONFLICTS_INSTALL=	bogofilter-bdb bogofilter-kc bogofilter-sqlite
+OPTIONS_DEFINE=		GSL UNICODE DOCS
+OPTIONS_DEFAULT=	GSL UNICODE
+GSL_DESC=		Link with system-wide GSL dynamically (recommended)
+UNICODE_DESC=		Normalize tokens to Unicode (UTF-8) (recommended)
 
-CONFIGURE_ARGS=	--with-database=lmdb
-BF_CPPFLAGS=	-I${LOCALBASE}/include
-BF_LIBS=
-DESCR=		${PKGDIR}/pkg-descr
+CONFLICTS_INSTALL?=	bogofilter-bdb bogofilter-kc bogofilter-lmdb bogofilter-sqlite  # bogofilter-bdb and -lmdb are historic, but let's keep them for a while
 
-MASTERDIR=	${.CURDIR}/../bogofilter-bdb
+USES+=		cpe perl5 shebangfix tar:xz
+SHEBANG_FILES=	contrib/randomtrain.sh contrib/scramble.sh \
+		src/tests/unsort.pl contrib/*.pl
+USE_PERL5=	run
+GNU_CONFIGURE=	yes
 
-.include "${MASTERDIR}/Makefile"
+CPE_VENDOR=	bogofilter_project
+
+UNICODE_USES=	iconv
+UNICODE_CONFIGURE_ENABLE=	unicode
+GSL_LIB_DEPENDS=	libgsl.so:math/gsl
+GSL_CONFIGURE_OFF=	--with-included-gsl
+
+PORTDOCS=	*
+
+TEST_TARGET=	check
+
+.include <bsd.port.pre.mk>
+
+BF_CPPFLAGS?=		-I${LOCALBASE}/include
+BF_LIBS?=		# empty, can be passed in by slave ports
+CONFIGURE_ARGS+=	--sysconfdir=${PREFIX}/etc
+.if !defined(MASTERDIR) || ${MASTERDIR} == ${.CURDIR}
+CONFIGURE_ARGS+=	--with-database=lmdb
+LIB_DEPENDS=   liblmdb.so:databases/lmdb
+.endif
+.if ${PORT_OPTIONS:MUNICODE}
+BF_LIBS+=		${ICONV_LIB}
+.endif
+CPPFLAGS+=	${BF_CPPFLAGS}
+LIBS+=		-L${LOCALBASE}/lib ${BF_LIBS}
+CONFIGURE_ENV+=	PERL="${PERL}"
+INSTALL_TARGET=	install-strip prefix=${PREFIX} mandir=${PREFIX}/share/man
+
+post-patch:
+	${REINPLACE_CMD} -e 's/INTEGRITY_TESTS = t.lock1 t.lock3 t.valgrind/INTEGRITY_TESTS = t.lock1/' \
+		-e 's/ENVIRON_TESTS = t.abort/ENVIRON_TESTS =/' \
+		${WRKSRC}/src/tests/Makefile.in
+
+post-build:
+	cd ${WRKSRC}/src && ${SETENVI} SHELL=${SH} ${MAKE_CMD} ${TEST_TARGET} ${_MAKE_JOBS} SHELL=${SH} \
+		|| { r=$$? ; head -n30000 ${WRKSRC}/src/tests/test-suite.log ; exit $$r ; }
+
+post-install:
+	@${MKDIR} ${STAGEDIR}${DOCSDIR}/contrib
+.for i in html programmer xml
+	@${MKDIR} ${STAGEDIR}${DOCSDIR}/${i}
+.endfor
+.for i in AUTHORS COPYING INSTALL NEWS README README.git \
+	doc/README.validation TODO GETTING.STARTED \
+	RELEASE.NOTES doc/README.db doc/README.sqlite \
+	doc/integrating-with-postfix doc/integrating-with-qmail \
+	doc/bogofilter-tuning.HOWTO.html doc/bogofilter-SA-* \
+	doc/bogofilter-faq.html doc/bogofilter-faq-fr.html
+	  ${INSTALL_DATA} ${WRKSRC}/${i} ${STAGEDIR}${DOCSDIR}
+.endfor
+.for i in README.randomtrain README.contrib
+	${INSTALL_DATA} ${WRKSRC}/contrib/${i} ${STAGEDIR}${DOCSDIR}/contrib/${i}
+.endfor
+	${INSTALL_DATA} ${WRKSRC}/doc/*.html ${STAGEDIR}${DOCSDIR}/html
+	${INSTALL_DATA} ${WRKSRC}/doc/*.xml ${STAGEDIR}${DOCSDIR}/xml
+	${INSTALL_DATA} ${WRKSRC}/doc/programmer/README.freebsd ${STAGEDIR}${DOCSDIR}/programmer
+	${INSTALL_PROGRAM} ${WRKSRC}/bogogrep ${STAGEDIR}${PREFIX}/bin/
+.for i in bfproxy.pl bogofilter-milter.pl bogo.R bogofilter-qfe.sh \
+		mime.get.rfc822.pl parmtest.sh printmaildir.pl \
+		bogominitrain.pl \
+		randomtrain.sh scramble.sh spamitarium.pl stripsearch.pl trainbogo.sh
+	  ${INSTALL_SCRIPT} ${WRKSRC}/contrib/${i} ${STAGEDIR}${DOCSDIR}/contrib/${i}
+.endfor
+.for i in dot-qmail-bogofilter-default \
+	mailfilter.example vm-bogofilter.el
+	${INSTALL_DATA} ${WRKSRC}/contrib/${i} ${STAGEDIR}${DOCSDIR}/contrib/${i}
+.endfor
+
+.include <bsd.port.post.mk>
diff --git a/mail/bogofilter-bdb/distinfo b/mail/bogofilter/distinfo
similarity index 100%
rename from mail/bogofilter-bdb/distinfo
rename to mail/bogofilter/distinfo
diff --git a/mail/bogofilter-bdb/files/patch-contrib__trainbogo.sh b/mail/bogofilter/files/patch-contrib__trainbogo.sh
similarity index 100%
rename from mail/bogofilter-bdb/files/patch-contrib__trainbogo.sh
rename to mail/bogofilter/files/patch-contrib__trainbogo.sh
diff --git a/mail/bogofilter-bdb/pkg-descr b/mail/bogofilter/pkg-descr
similarity index 71%
rename from mail/bogofilter-bdb/pkg-descr
rename to mail/bogofilter/pkg-descr
index 57fdfdc865d7..4d0c194c5159 100644
--- a/mail/bogofilter-bdb/pkg-descr
+++ b/mail/bogofilter/pkg-descr
@@ -6,7 +6,7 @@ words, and returns a status code indicating whether or not the message is spam.
 Bogofilter decodes base64 or quoted-printable encoded texts and ignores non-text
 attachments and HTML comments.
 
-The supported database backends are LMDB, Kyoto Cabinet and SQLite3, and
-for a while still Berkeley DB.  The upstream version would theoretically 
-also support QDBM and Tokyo Cabinet, but these are not currently available
-as FreeBSD ports.
+The supported database backends are LMDB, Kyoto Cabinet and SQLite3.
+The upstream version would theoretically also support QDBM and
+Tokyo Cabinet, but these are not currently available as FreeBSD ports.
+Berkeley DB support is being phased out.
diff --git a/mail/bogofilter-bdb/pkg-install b/mail/bogofilter/pkg-install
similarity index 100%
rename from mail/bogofilter-bdb/pkg-install
rename to mail/bogofilter/pkg-install
diff --git a/mail/bogofilter-bdb/pkg-plist b/mail/bogofilter/pkg-plist
similarity index 100%
rename from mail/bogofilter-bdb/pkg-plist
rename to mail/bogofilter/pkg-plist