drop exim from ports, this has been proposed various times over the last

couple of years but nobody actually got round to it yet, and it seems like
a good point in the release cycle to say bye, the port installs it suid
root and it has had quite a few too many security issues to be comfortable
with this.

ok job, tb, renaud (maintainer)
This commit is contained in:
sthen
2026-04-15 13:15:55 +00:00
parent 3330096ff2
commit 7c19397333
19 changed files with 5 additions and 509 deletions
+1 -1
View File
@@ -3,7 +3,7 @@ CATEGORIES = devel databases
DISTFILES =
# API.rev
PKGNAME = quirks-7.193
PKGNAME = quirks-7.194
PKG_ARCH = *
MAINTAINER = Marc Espie <espie@openbsd.org>
+4 -1
View File
@@ -1,7 +1,7 @@
#! /usr/bin/perl
# ex:ts=8 sw=4:
# $OpenBSD: Quirks.pm,v 1.1798 2026/04/09 23:29:07 kn Exp $
# $OpenBSD: Quirks.pm,v 1.1799 2026/04/15 13:15:55 sthen Exp $
#
# Copyright (c) 2009 Marc Espie <espie@openbsd.org>
#
@@ -1064,6 +1064,8 @@ setup_obsolete_reason(
2 => 'libgdata',
3 => 'py3-cookies',
6 => 'nix',
46 => 'exim',
46 => 'exim-eximon',
);
# these should be pkgnames, there was some hope that pkg_add might later
@@ -1118,6 +1120,7 @@ my $obsolete_message = {
15 => "use rspamd's internal milter support instead",
16 => "dependencies for recent versions can't be met",
17 => "outdated port, security problems in the last ported version",
46 => "setuid-root software with a track record of security issues",
47 => "DNS network daemon running as root and not using random source ports. use DNS64 support in unbound or isc-bind",
48 => "1.x does not support current PHP, 2.x is tricky to package, see https://github.com/leenooks/phpLDAPadmin/wiki/Installation-Instructions#install-from-the-source-code",
51 => "no longer maintained upstream, consider using socat or SSH",
-5
View File
@@ -37,11 +37,6 @@
SUBDIR += elm
SUBDIR += evolution
SUBDIR += evolution-ews
SUBDIR += exim
SUBDIR += exim,ldap
SUBDIR += exim,mysql
SUBDIR += exim,mysql,postgresql,ldap
SUBDIR += exim,postgresql
SUBDIR += exmh2
SUBDIR += extsmail
SUBDIR += fdm
-134
View File
@@ -1,134 +0,0 @@
COMMENT-main = flexible mail transfer agent
COMMENT-eximon = X11 monitor tool for Exim MTA
VERSION = 4.99.1
DISTNAME = exim-${VERSION}
PKGNAME-main = exim-${VERSION}
FULLPKGNAME-eximon = exim-eximon-${VERSION}
FULLPKGPATH-eximon = ${PKGPATH},-eximon
REVISION-main = 0
CATEGORIES = mail
HOMEPAGE = https://www.exim.org/
MAINTAINER = Renaud Allard <renaud@allard.it>
# GPLv2+, with OpenSSL exemption
PERMIT_PACKAGE = Yes
cWANTLIB = c m
WANTLIB-main = ${cWANTLIB} crypto execinfo iconv perl pcre2-8 ssl
WANTLIB-eximon = ${cWANTLIB} X11 Xaw Xext Xmu Xt pcre2-8
SITES = https://ftp.exim.org/pub/exim/exim4/ \
https://ftp.exim.org/pub/exim/exim4/fixes/ \
https://ftp.exim.org/pub/exim/exim4/old/ \
ftp://ftp.exim.org/pub/exim/exim4/ \
ftp://ftp.exim.org/pub/exim/exim4/fixes/ \
ftp://ftp.exim.org/pub/exim/exim4/old/
# needs C11 _Generic
COMPILER = base-clang ports-gcc
COMPILER_LANGS = c
# only used for exim_id_update (which is run as part of the build,
# ./exim_id_update -v 2>&1 >/dev/null)
BUILD_DEPENDS = devel/p5-File-FcntlLock
RUN_DEPENDS = devel/p5-File-FcntlLock
LIB_DEPENDS-main = converters/libiconv \
devel/pcre2
RUN_DEPENDS-eximon = ${PKGPATH},-main
LIB_DEPENDS-eximon = devel/pcre2
MAKE_FLAGS += FULLECHO= CC="${CC}" CFLAGS="${CFLAGS}" LDFLAGS="-lexecinfo"
PSEUDO_FLAVORS = no_eximon
FLAVORS = mysql postgresql sqlite3 ldap sasl
FLAVOR ?=
MULTI_PACKAGES = -main -eximon
DEBUG_PACKAGES = ${BUILD_PACKAGES}
.include <bsd.port.arch.mk>
EXIM_MAKECAT += "\n\# Porters note: this chunk should be removed after 'make update-patches'\n"
.if ${BUILD_PACKAGES:M-eximon}
EXIM_MAKECAT += "EXIM_MONITOR=eximon.bin\n"
.endif
.if ${FLAVOR:Mmysql}
EXIM_MAKECAT += "LOOKUP_MYSQL=yes\n"
EXIM_LOOKUP_INCLUDE += -I${LOCALBASE}/include/mysql
EXIM_LOOKUP_LIBS += -L${LOCALBASE}/lib/mysql -lmysqlclient
LIB_DEPENDS-main += databases/mariadb
WANTLIB-main += mariadb pthread
.endif
.if ${FLAVOR:Mpostgresql}
EXIM_MAKECAT += "LOOKUP_PGSQL=yes\n"
EXIM_LOOKUP_INCLUDE += -I${LOCALBASE}/include/postgresql
EXIM_LOOKUP_LIBS += -L${LOCALBASE}/lib/ -lpq
LIB_DEPENDS-main += databases/postgresql
WANTLIB-main += pq>=2
.endif
.if ${FLAVOR:Msqlite3}
EXIM_MAKECAT += "LOOKUP_SQLITE=yes\n"
EXIM_LOOKUP_LIBS += -lsqlite3
WANTLIB-main += sqlite3>=8
.endif
.if ${FLAVOR:Mldap}
EXIM_MAKECAT += "LOOKUP_LDAP=yes\n"
EXIM_MAKECAT += "LDAP_LIB_TYPE=OPENLDAP2\n"
EXIM_LOOKUP_LIBS += -L${LOCALBASE}/lib -lldap -llber
LIB_DEPENDS-main += databases/openldap>=2.3
WANTLIB-main += ldap>=9 lber
.endif
.if ${FLAVOR:Msasl}
EXIM_MAKECAT += "AUTH_CYRUS_SASL=yes\n"
EXIM_EXTRA_LIBS += -L${LOCALBASE}/lib -lsasl2
LIB_DEPENDS-main += security/cyrus-sasl2
WANTLIB-main += sasl2
.endif
EXIM_EXTRA_LIBS += -L${LOCALBASE}/lib -liconv
EXIM_MAKECAT += "BIN_DIRECTORY=${PREFIX}/bin\n"
EXIM_MAKECAT += "CONFIGURE_FILE=${SYSCONFDIR}/exim/configure\n"
EXIM_MAKECAT += "LOOKUP_INCLUDE=${EXIM_LOOKUP_INCLUDE}\n"
EXIM_MAKECAT += "LOOKUP_LIBS=${EXIM_LOOKUP_LIBS}\n"
EXIM_MAKECAT += "EXTRALIBS_EXIM=${EXIM_EXTRA_LIBS}\n"
EXIM_MAKECAT += "CFLAGS+=${CFLAGS} ${EXIM_CFLAGS}\n"
EXIM_MAKECAT += "INCLUDE=-I${LOCALBASE}/include\n"
NO_TEST = Yes
post-extract:
@cd ${WRKSRC}; cp src/EDITME Local/Makefile; \
cp exim_monitor/EDITME Local/eximon.conf
do-configure:
@echo -n ${EXIM_MAKECAT} >> ${WRKSRC}/Local/Makefile
pre-fake:
${INSTALL_DATA_DIR} ${WRKINST}${SYSCONFDIR}/mail
post-install:
${INSTALL_DATA_DIR} ${PREFIX}/share/examples/exim
${INSTALL_DATA} ${WRKINST}${SYSCONFDIR}/exim/configure \
${PREFIX}/share/examples/exim
${INSTALL_DATA_DIR} ${PREFIX}/share/doc/exim
${INSTALL_DATA} ${WRKSRC}/doc/spec.txt ${PREFIX}/share/doc/exim
${INSTALL_DATA} ${WRKSRC}/doc/README.SIEVE ${PREFIX}/share/doc/exim
${INSTALL_DATA} ${WRKSRC}/doc/filter.txt ${PREFIX}/share/doc/exim
${SUBST_DATA} ${FILESDIR}/mailer.conf.exim \
${PREFIX}/share/doc/exim/mailer.conf.exim
${INSTALL_SCRIPT} ${FILESDIR}/exim-enable ${FILESDIR}/exim-disable \
${PREFIX}/sbin
${INSTALL_MAN} ${WRKSRC}/doc/exim.8 ${PREFIX}/man/man8
.include <bsd.port.mk>
-2
View File
@@ -1,2 +0,0 @@
SHA256 (exim-4.99.1.tar.gz) = btX9g2mGlKVFASBYYvJ6XFAAJW2J07gpW29QMMIYo7Q=
SIZE (exim-4.99.1.tar.gz) = 2695661
-14
View File
@@ -1,14 +0,0 @@
#!/bin/sh
if [ ! -f /etc/mailer.conf.pre-exim ]; then
echo "can't find /etc/mailer.conf.pre-exim, exim not disabled"
exit 1
fi
if [ -f /etc/mailer.conf ]; then
mv -f /etc/mailer.conf /etc/mailer.conf.exim
mv -f /etc/mailer.conf.pre-exim /etc/mailer.conf
echo "exim mailer.conf disabled, old mailer.conf enabled"
else
echo "can't find /etc/mailer.conf, exim not disabled"
fi
-18
View File
@@ -1,18 +0,0 @@
#!/bin/sh
if [ -f /etc/mailer.conf.exim ]; then
if [ -f /etc/mailer.conf ]; then
mv -f /etc/mailer.conf /etc/mailer.conf.pre-exim
echo "old /etc/mailer.conf saved as /etc/mailer.conf.pre-exim"
fi
mv -f /etc/mailer.conf.exim /etc/mailer.conf
echo "exim /etc/mailer.conf enabled"
echo ""
echo "NOTE: do not forget to add smtpd_flags=NO to"
echo " /etc/rc.conf.local to disable smtpd"
echo ""
echo "NOTE: do not forget to add exim to pkg_scripts in"
echo " /etc/rc.conf.local to start exim automatically."
else
echo "can't find /etc/mailer.conf.exim, exim not enabled"
fi
-4
View File
@@ -1,4 +0,0 @@
sendmail ${TRUEPREFIX}/bin/exim
send-mail ${TRUEPREFIX}/bin/exim
mailq ${TRUEPREFIX}/bin/exim -bp
newaliases /usr/bin/true
-185
View File
@@ -1,185 +0,0 @@
Index: Local/Makefile
--- Local/Makefile.orig
+++ Local/Makefile
@@ -104,7 +104,7 @@
# /usr/local/sbin. The installation script will try to create this directory,
# and any superior directories, if they do not exist.
-BIN_DIRECTORY=/usr/exim/bin
+#BIN_DIRECTORY=/usr/exim/bin
#------------------------------------------------------------------------------
@@ -120,7 +120,7 @@ BIN_DIRECTORY=/usr/exim/bin
# don't exist. It will also install a default runtime configuration if this
# file does not exist.
-CONFIGURE_FILE=/usr/exim/configure
+#CONFIGURE_FILE=/usr/exim/configure
# It is possible to specify a colon-separated list of files for CONFIGURE_FILE.
# In this case, Exim will use the first of them that exists when it is run.
@@ -137,7 +137,7 @@ CONFIGURE_FILE=/usr/exim/configure
# deliveries. (Local deliveries run as various non-root users, typically as the
# owner of a local mailbox.) Specifying these values as root is not supported.
-EXIM_USER=
+EXIM_USER=ref:_exim
# If you specify EXIM_USER as a name, this is looked up at build time, and the
# uid number is built into the binary. However, you can specify that this
@@ -215,11 +215,11 @@ SPOOL_DIRECTORY=/var/spool/exim
# If you are building with TLS, the library configuration must be done:
# Uncomment this if you are using OpenSSL
-# USE_OPENSSL=yes
+USE_OPENSSL=yes
# Uncomment one of these settings if you are using OpenSSL; pkg-config vs not
# and an optional location.
# USE_OPENSSL_PC=openssl
-# TLS_LIBS=-lssl -lcrypto
+TLS_LIBS=-lssl -lcrypto
# TLS_LIBS=-L/usr/local/openssl/lib -lssl -lcrypto
# Uncomment this if you are using GnuTLS
@@ -362,7 +362,7 @@ TRANSPORT_SMTP=yes
# This one is special-purpose, and commonly not required, so it is not
# included by default.
-# TRANSPORT_LMTP=yes
+TRANSPORT_LMTP=yes
#------------------------------------------------------------------------------
@@ -371,9 +371,9 @@ TRANSPORT_SMTP=yes
# MBX, is included only when requested. If you do not know what this is about,
# leave these settings commented out.
-# SUPPORT_MAILDIR=yes
-# SUPPORT_MAILSTORE=yes
-# SUPPORT_MBX=yes
+SUPPORT_MAILDIR=yes
+SUPPORT_MAILSTORE=yes
+SUPPORT_MBX=yes
#------------------------------------------------------------------------------
@@ -434,8 +434,8 @@ LOOKUP_DBM=yes
LOOKUP_LSEARCH=yes
LOOKUP_DNSDB=yes
-# LOOKUP_CDB=yes
-# LOOKUP_DSEARCH=yes
+LOOKUP_CDB=yes
+LOOKUP_DSEARCH=yes
# LOOKUP_IBASE=yes
# LOOKUP_JSON=yes
# LOOKUP_LDAP=yes
@@ -443,10 +443,10 @@ LOOKUP_DNSDB=yes
# LOOKUP_MYSQL=yes
# LOOKUP_MYSQL_PC=mariadb
-# LOOKUP_NIS=yes
+LOOKUP_NIS=yes
# LOOKUP_NISPLUS=yes
# LOOKUP_ORACLE=yes
-# LOOKUP_PASSWD=yes
+LOOKUP_PASSWD=yes
# LOOKUP_PGSQL=yes
# LOOKUP_REDIS=yes
# LOOKUP_SQLITE=yes
@@ -583,7 +583,7 @@ SUPPORT_DANE=yes
# and the MIME ACL. Please read the documentation to learn more about these
# features.
-# WITH_CONTENT_SCAN=yes
+WITH_CONTENT_SCAN=yes
# If you have content scanning you may wish to only include some of the scanner
# interfaces. Uncomment any of these lines to remove that code.
@@ -628,7 +628,7 @@ DISABLE_MAL_MKS=yes
# from Exim. Note it can only be supported when built with
# GnuTLS 3.1.3 or later, or OpenSSL
-# DISABLE_OCSP=yes
+DISABLE_OCSP=yes
#------------------------------------------------------------------------------
# By default, Exim has support for checking the AD bit in a DNS response, to
@@ -879,18 +879,18 @@ FIXED_NEVER_USERS=root
# core exim build. This gets them linked with the module instead.
# The heimdal does build but we have no test coverage so it is not know to work.
-# AUTH_CRAM_MD5=yes
+AUTH_CRAM_MD5=yes
# AUTH_CYRUS_SASL=yes
-# AUTH_DOVECOT=yes
+AUTH_DOVECOT=yes
# AUTH_EXTERNAL=yes
# AUTH_GSASL=yes
# AUTH_GSASL_PC=libgsasl
# AUTH_HEIMDAL_GSSAPI=yes
# AUTH_HEIMDAL_GSSAPI_PC=heimdal-gssapi
# AUTH_HEIMDAL_GSSAPI_PC=heimdal-gssapi heimdal-krb5
-# AUTH_PLAINTEXT=yes
+AUTH_PLAINTEXT=yes
# AUTH_SPA=yes
-# AUTH_TLS=yes
+AUTH_TLS=yes
# Heimdal through 1.5 required pkg-config 'heimdal-gssapi'; Heimdal 7.1
# requires multiple pkg-config files to work with Exim, so the second example
@@ -937,7 +937,7 @@ HEADERS_CHARSET="ISO-8859-1"
# the Sieve filter support. For those OS where iconv() is known to be installed
# as standard, the file in OS/Makefile-xxxx contains
#
-# HAVE_ICONV=yes
+HAVE_ICONV=yes
#
# If you are not using one of those systems, but have installed iconv(), you
# need to uncomment that line above. In some cases, you may find that iconv()
@@ -1026,7 +1026,7 @@ HEADERS_CHARSET="ISO-8859-1"
# %s. This will be replaced by one of the strings "main", "panic", or "reject"
# to form the final file names. Some installations may want something like this:
-# LOG_FILE_PATH=/var/log/exim_%slog
+LOG_FILE_PATH=/var/spool/exim/logs/%s.log
# which results in files with names /var/log/exim_mainlog, etc. The directory
# in which the log files are placed must exist; Exim does not try to create
@@ -1099,7 +1099,7 @@ ZCAT_COMMAND=/usr/bin/zcat
# Perl costs quite a lot of resources. Only do this if you really need it.
#
-# EXIM_PERL=perl.o
+EXIM_PERL=perl.o
# For a dynamic module build add also SUPPORT_PERL=2 and SUPPORT_PAM_(INCLUED,LIBS)
#SUPPORT_PERL=2
@@ -1246,7 +1246,7 @@ ZCAT_COMMAND=/usr/bin/zcat
# group. Once you have installed saslauthd, you should arrange for it to be
# started by root at boot time.
-# CYRUS_SASLAUTHD_SOCKET=/var/state/saslauthd/mux
+CYRUS_SASLAUTHD_SOCKET=/var/sasl2/mux
#------------------------------------------------------------------------------
@@ -1269,7 +1269,7 @@ ZCAT_COMMAND=/usr/bin/zcat
# aliases). The following setting can be changed to specify a different
# location for the system alias file.
-SYSTEM_ALIASES_FILE=/etc/aliases
+SYSTEM_ALIASES_FILE=/etc/mail/aliases
#------------------------------------------------------------------------------
@@ -1534,7 +1534,7 @@ EXIM_TMPDIR="/tmp"
# (process id) to a file so that it can easily be identified. The path of the
# file can be specified here. Some installations may want something like this:
-# PID_FILE_PATH=/var/lock/exim.pid
+PID_FILE_PATH=/var/run/exim.pid
# If PID_FILE_PATH is not defined, Exim writes a file in its spool directory
# using the name "exim-daemon.pid".
@@ -1,21 +0,0 @@
Index: OS/Makefile-Default
--- OS/Makefile-Default.orig
+++ OS/Makefile-Default
@@ -74,7 +74,7 @@ PERL_COMMAND=/usr/bin/perl
# CC contains the name of the C compiler to be used.
-CC=gcc
+#CC=gcc
# CFLAGS contains flags to be passed to the compiler. Nothing is defaulted
@@ -87,7 +87,7 @@ CC=gcc
# here; instead each OS-dependent Makefile contains a default setting if one
# is needed.
-# LFLAGS=
+LFLAGS=-L$(LOCALBASE)/lib
# PCRE_LIBS contains the library to be linked for PCRE
@@ -1,10 +0,0 @@
--- OS/Makefile-OpenBSD.orig Tue Nov 7 10:22:10 2023
+++ OS/Makefile-OpenBSD Tue Nov 7 10:23:09 2023
@@ -24,7 +24,6 @@ EXIWHAT_EGREP_ARG='/exim( |$$)'
EXIWHAT_KILL_SIGNAL=-USR1
HAVE_IPV6=YES
-CFLAGS += -DNO_EXECINFO
# OpenBSD ships with a too-old Berkeley DB. NDBM is the default if we don't specify one.
#USE_DB=yes
@@ -1,12 +0,0 @@
Index: scripts/exim_install
--- scripts/exim_install.orig
+++ scripts/exim_install
@@ -219,7 +219,7 @@ while [ $# -gt 0 ]; do
# The exim binary is handled specially
- if [ $name = exim${EXE} ]; then
+ if false; then
exim="./exim -bV -C /dev/null"
version=exim-`$exim 2>/dev/null | \
awk '/Exim version/ { OFS=""; print $3,"-",substr($4,2,length($4)-1) }'`${EXE}
@@ -1,12 +0,0 @@
Index: src/tlscert-openssl.c
--- src/tlscert-openssl.c.orig
+++ src/tlscert-openssl.c
@@ -29,7 +29,7 @@ library. It is #included into the tls.c file when that
# endif
#endif
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2090000fL)
# define ASN1_STRING_get0_data ASN1_STRING_data
#endif
-7
View File
@@ -1,7 +0,0 @@
Exim is a mail transfer agent (MTA) for hosts that are running Unix or Unix-
like operating systems. It was designed on the assumption that it would be run
on hosts that are permanently connected to the Internet. However, it can
be used on intermittently connected hosts with suitable configuration
adjustments.
This is the X11-Exim monitor.
-16
View File
@@ -1,16 +0,0 @@
Exim is a mail transfer agent (MTA) for hosts that are running Unix or Unix-
like operating systems. It was designed on the assumption that it would be run
on hosts that are permanently connected to the Internet. However, it can
be used on intermittently connected hosts with suitable configuration
adjustments.
This port can be built with any or all of the following flavors:
* mysql - support mysql queries for lookups
* postgresql - support postgresql queries for lookups
* sqlite3 - support for sqlite queries for lookups
* ldap - support ldap (OpenLDAP) queries for lookups
* sasl - support for SASL
It is possible to use the deprecated "demime" condition in the DATA ACL. If
possible, use the MIME ACL instead of the "demime" condition.
-9
View File
@@ -1,9 +0,0 @@
To replace smtpd with exim, install a new mailer.conf using the
following command:
${PREFIX}/sbin/exim-enable
If you want to restore smtpd, this is done using the following
command:
${PREFIX}/sbin/exim-disable
-3
View File
@@ -1,3 +0,0 @@
@conflict exim-<4.71
bin/eximon
@bin bin/eximon.bin
-47
View File
@@ -1,47 +0,0 @@
@pkgpath mail/exim
@pkgpath mail/exim,no_exiscan
@pkgpath mail/exim,no_exiscan,no_x11
@pkgpath mail/exim,no_x11
@pkgpath mail/exim,iconv
@pkgpath mail/exim,iconv,no_exiscan
@pkgpath mail/exim,iconv,no_exiscan,no_x11
@pkgpath mail/exim,iconv,no_x11
@newgroup _exim:521
@newuser _exim:521:_exim::Exim Account:/var/spool/exim:/sbin/nologin
@extraunexec rm -rf /var/spool/exim/*
@sample ${SYSCONFDIR}/exim/
@rcscript ${RCDIR}/exim
bin/exicyclog
bin/exigrep
@mode 4755
@bin bin/exim
@mode
bin/exim_checkaccess
@bin bin/exim_dbmbuild
@bin bin/exim_dumpdb
@bin bin/exim_fixdb
bin/exim_id_update
@bin bin/exim_lock
bin/exim_msgdate
@bin bin/exim_tidydb
bin/eximstats
bin/exinext
bin/exipick
bin/exiqgrep
bin/exiqsumm
bin/exiwhat
@man man/man8/exim.8
sbin/exim-disable
sbin/exim-enable
share/doc/exim/
share/doc/exim/README.SIEVE
share/doc/exim/filter.txt
share/doc/exim/mailer.conf.exim
@sample ${SYSCONFDIR}/mailer.conf.exim
share/doc/exim/spec.txt
share/examples/exim/
share/examples/exim/configure
@sample ${SYSCONFDIR}/exim/configure
@owner _exim
@group _exim
@sample /var/spool/exim/
-8
View File
@@ -1,8 +0,0 @@
#!/bin/ksh
daemon="${TRUEPREFIX}/bin/exim -bd"
daemon_flags="-q30m"
. /etc/rc.d/rc.subr
rc_cmd $1