Bug 57098 - [PATCH] port mail/exim: update to version 4.24
Summary: [PATCH] port mail/exim: update to version 4.24
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Sheldon Hearn
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-09-22 17:50 UTC by Oliver Eikemeier
Modified: 2003-09-29 12:55 UTC (History)
1 user (show)

See Also:


Attachments
exim-4.24.patch (27.04 KB, patch)
2003-09-22 17:50 UTC, Oliver Eikemeier
no flags Details | Diff
file.diff (405 bytes, patch)
2003-09-22 17:50 UTC, Oliver Eikemeier
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Oliver Eikemeier 2003-09-22 17:50:23 UTC
This patch supersedes PR 57023

Summary:

- update to 4.24

- exim announces its FreeBSD port revision as the build
  number in `exim -bV'

- installed additional scripts in ${PREFIX}/share/examples/exim,
  helping with the Exim 3 -> Exim 4 transition now that mail/exim-old is gone

- mention the ChangeLog, the transition scripts and the
  mail/exim-doc-* ports in POST-INSTALL-NOTES, remove the
  reference to the info files

- install manpages even if NOPORTDOCS is defined (fixing NOPORTDOCS build)

- made `make PREFIX=/somthing/other/than/usr/local' really work

- incorporated PR 56117 (WITH_MSQL_VER)

- made OpenLDAP selection more standard (WITH_OPENLDAP, WITH_OPENLDAP_VER),
  deprecated all old LDAP options (sorry, but it got too tangly)

- made BerkeleyDB selection option WITH_BDB_VER, deprecated DB_LIB_VERSION

- respect bsd.ports.mk defaults of MySQL 4.0 and OpenLDAP 2.1

- added a message to show the zillions of options sorted in one place

- killed exim-ldap (OpenLDAP 1.2 is ancient)

- no wishlist item again: eqi is part of exim

- mark the exim-* slave ports as conflicting each other

- introduce WITH_DEFAULT_CHARSET

- introduce WITHOUT_ALT_CONFIG_PREFIX:
  Per default, we only allow configuration files in
  /usr/local/etc/exim/.

  This may break some confiurations (and exim -bV -C /dev/null),
  but the FreeBSD port has perl enabled by default, and it is
  trivial to write a perl script that gives root access when
  the mailnull account is compromised.

Fix: *** THIS IS A TEST VERSION ***

This version is for testing purposes only, it assumes that
exiscan-acl-4.22-12.patch.bz2 is already in /usr/ports/distfiles/exim

To get a release version:

- wait until Tom is back ;-)
  http://article.gmane.org/gmane.mail.exim.exiscan.user/1061

- do:
  sed -i .bak -e '/^##### BEGIN REMOVE/,/^##### END REMOVE/d' Makefile
  rm files/exiscan-acl-4.22-12.patch.patch
  make makesum

- delete mail/exim-ldap, update mail/exim-ldap2

---
Comment 1 Kirill Ponomarev freebsd_committer freebsd_triage 2003-09-22 18:45:04 UTC
Responsible Changed
From-To: freebsd-ports-bugs->sheldonh

Over to maintainer
Comment 2 Clement Laforet 2003-09-22 18:52:00 UTC
Hi, Oliver !

> +.if defined(WITH_MYSQL_VER)
> +WITH_MYSQL=	yes
> +WANT_MYSQL_VER=	${WITH_MYSQL_VER}
> +.endif

this is useless, it's surely due to my lack of documentation ;-)
WANT_MYSQL_VERSION was introduced to let ports maintainer to set an
arbitrary version of MySQL.
In your case, the code is redundant since we can only define
WITH_MYSQL_VER.

I don't think it's a good idea ro implies WITH_MYSQL if WITH_MYSQL_VER
is defined.
Personnaly, I have some services which use MYSQL and others don't.
I've put WITH_MYSQL_VER in my /etc/make.conf and I don't want to
activate MySQL support on every ports I installed because of this.

My 2cents :)

regards,
clem
Comment 3 Oliver Eikemeier 2003-09-23 01:29:52 UTC
Hi Clement,

>>+.if defined(WITH_MYSQL_VER)
>>+WITH_MYSQL=	yes
>>+WANT_MYSQL_VER=	${WITH_MYSQL_VER}
>>+.endif
> 
> this is useless, it's surely due to my lack of documentation ;-)
> WANT_MYSQL_VERSION was introduced to let ports maintainer to set an
> arbitrary version of MySQL.
> In your case, the code is redundant since we can only define
> WITH_MYSQL_VER.
> 
> I don't think it's a good idea ro implies WITH_MYSQL if WITH_MYSQL_VER
> is defined.
> Personnaly, I have some services which use MYSQL and others don't.
> I've put WITH_MYSQL_VER in my /etc/make.conf and I don't want to
> activate MySQL support on every ports I installed because of this.

AFAIK USE_* is for ports and WITH_* is for users, see
  http://lists.freebsd.org/pipermail/freebsd-ports/2003-September/004187.html

So I assume that a port builds WITH something when I specify WITH_something.

Sorry that I didn't check, I copied it blindly from PR 56117, but it seems
that the current scheme is misleading. The code it the patch looks right and
works as expected (and documented in bsd.port.mk):

  WITH_MYSQL_VER => User defined variable to set MySQL version.
  USE_MYSQL      => Add MySQL client dependency.
  WANT_MYSQL_VER => Maintainer can set an arbitrary version of MySQL by using it.

I can see later in bsd.port.mk that this is not the usage you intended, though.

Regards
    Oliver
Comment 4 Oliver Eikemeier 2003-09-23 03:48:12 UTC
Somehow I missed to transfer the last patch from PR 57023:

- USE_OPENLDAP and USE_OPENSSL marcos must be used *before*
  bsd.port.pre.mk, so shuffle things a bit around:

--- exim-4.24_1.patch begins here ---
--- mail/exim/Makefile.orig	Tue Sep 23 03:17:39 2003
+++ mail/exim/Makefile	Tue Sep 23 04:40:02 2003
@@ -165,28 +165,6 @@
 EXTRA_PATCHES+=	`${FIND} ${PATCHDIR} -name 'wishlist-*.patch'`
 .endif
 
-.include <bsd.port.pre.mk>
-
-.if ${OSVERSION} >= 500038
-RC_SUBR?=	${DESTDIR}/etc/rc.subr
-RC_DIR=		${DESTDIR}/etc/rc.d
-RC_SUFX=
-.else
-USE_RC_SUBR=	yes
-RC_DIR=		${PREFIX}/etc/rc.d
-RC_SUFX=	.sh
-.endif
-
-SED_SCRIPT=	-e 's,%%PREFIX%%,${PREFIX},g' \
-		-e 's,%%DOCSDIR%%,${DOCSDIR},g' \
-		-e 's,%%EXAMPLESDIR%%,${EXAMPLESDIR},g' \
-		-e 's,%%RC_SUBR%%,${RC_SUBR},g' \
-		-e 's,%%RC_DIR%%,${RC_DIR},g' \
-		-e 's,%%RC_SUFX%%,${RC_SUFX},g'
-
-PLIST_SUB+=	RC_DIR=${RC_DIR} \
-		RC_SUFX=${RC_SUFX}
-
 .if !defined(WITHOUT_EXISCAN)
 PORTDOC_FILES+=	exiscan-acl-examples.txt exiscan-acl-spec.txt
 PLIST_SUB+=	EXISCAN_ACL=""
@@ -194,10 +172,6 @@
 PLIST_SUB+=	EXISCAN_ACL="@comment "
 .endif
 
-.if ${OSVERSION} < 400014
-WITHOUT_IPV6=	yes
-.endif
-
 SEDLIST=	-e 's,XX_PREFIX_XX,${PREFIX},' \
 		-e 's,XX_LOCALBASE_XX,${LOCALBASE},' \
 		-e 's,XX_DEFAULT_CHARSET_XX,${WITH_DEFAULT_CHARSET},'
@@ -322,10 +296,6 @@
 SEDLIST+=	-e 's,XX_PGSQL_[^ ]*_XX,,'
 .endif
 
-.if !defined(WITHOUT_IPV6)
-SEDLIST+=	-e 's,^\# HAVE_IPV6=,HAVE_IPV6=,'
-.endif
-
 .if !defined(WITH_PGSQL) && !defined(WITH_MYSQL) && !defined(LDAP_LIB_TYPE) && \
     ${WITH_BDB_VER} == 1
 SEDLIST+=	-e 's,^LOOKUP_LIBS=,\#LOOKUP_LIBS=,' \
@@ -366,6 +336,36 @@
 
 .if defined(WITHOUT_ALT_CONFIG_PREFIX)
 SEDLIST+=	-e 's,^\ALT_CONFIG_PREFIX=,# ALT_CONFIG_PREFIX=,'
+.endif
+
+.include <bsd.port.pre.mk>
+
+.if ${OSVERSION} >= 500038
+RC_SUBR?=	${DESTDIR}/etc/rc.subr
+RC_DIR=		${DESTDIR}/etc/rc.d
+RC_SUFX=
+.else
+USE_RC_SUBR=	yes
+RC_DIR=		${PREFIX}/etc/rc.d
+RC_SUFX=	.sh
+.endif
+
+SED_SCRIPT=	-e 's,%%PREFIX%%,${PREFIX},g' \
+		-e 's,%%DOCSDIR%%,${DOCSDIR},g' \
+		-e 's,%%EXAMPLESDIR%%,${EXAMPLESDIR},g' \
+		-e 's,%%RC_SUBR%%,${RC_SUBR},g' \
+		-e 's,%%RC_DIR%%,${RC_DIR},g' \
+		-e 's,%%RC_SUFX%%,${RC_SUFX},g'
+
+PLIST_SUB+=	RC_DIR=${RC_DIR} \
+		RC_SUFX=${RC_SUFX}
+
+.if ${OSVERSION} < 400014
+WITHOUT_IPV6=	yes
+.endif
+
+.if !defined(WITHOUT_IPV6)
+SEDLIST+=	-e 's,^\# HAVE_IPV6=,HAVE_IPV6=,'
 .endif
 
 pre-everything::
--- exim-4.24_1.patch ends here ---

Argl, patchmania...
Comment 5 Sheldon Hearn 2003-09-23 15:47:39 UTC
On (2003/09/23 04:48), Oliver Eikemeier wrote:

> Somehow I missed to transfer the last patch from PR 57023:

Phew, okay.  This is a rather large number of changes, hot on each
others' heels.

I think I'd like to leave the port as it is for the release, and start
going mad with patches again afterward.

Looking at your patch, I don't see any showstopper issues that it
addresses.

Are you okay with my decision?

Ciao,
Sheldon.
Comment 6 Oliver Eikemeier 2003-09-23 16:05:58 UTC
Sheldon Hearn wrote:

> Phew, okay.  This is a rather large number of changes, hot on each
> others' heels.
> 
> I think I'd like to leave the port as it is for the release, and start
> going mad with patches again afterward.
> 
> Looking at your patch, I don't see any showstopper issues that it
> addresses.
> 
> Are you okay with my decision?

As I written in the patch:

> *** THIS IS A TEST VERSION ***
> 
> To get a release version:
> 
> - wait until Tom is back ;-)
>   http://article.gmane.org/gmane.mail.exim.exiscan.user/1061

and as I wrote to you in private mail (Fri, 19 Sep 2003 22:59:32 +0200):

> I know that we are in a ports freeze and that exiscan 4.23-12
> is not ready. This is just a prototype to discuss the following
> issues:
> 
> - deprecate all old LDAP options (only WITH_OPENLDAP and
>  WITH_OPENLDAP_VER are valid)
> 
> - respect bsd.ports.mk defaults of MySQL 4.0 and OpenLDAP 2.1
> 
> - kill the mail/exim-ldap port (OpenLDAP 1.2 is ancient)
> 
> I think it is time to break backwards compatibility a bit,
> especially in the light of the removal of mail/exim-old.
> 
> So, when you have time to look into the PR, please tell me
> what you think.

Hey, this patch was *never* meant to make it in 4.9.

I know that there are a lot of changes, some not backwards
compatible, so I tried to get this patch out to let us
discuss which changes are good and what should be done
differently. Consider it a prototype.

And please, look at the description and tell me what you
think. Especially about WITH_OPENLDAP/WITH_BDB_VER,
the changes of the default library for OpenLDAP/MySQL
and WITHOUT_ALT_CONFIG_PREFIX.
Comment 7 Oliver Eikemeier 2003-09-27 14:36:49 UTC
Hi Sheldon,

I splitted the patch in two parts:

* feature enhancements for 4.22:

ftp://ftp.fillmore-labs.com/pub/FreeBSD/patches/exim-4.22_5.patch.bz2
MD5 (exim-4.22_5.patch.bz2) = 8cc44236a7f1fc350cdaddd240efa2df

Summary:

- exim announces its FreeBSD port revision as the build
  number in `exim -bV'

- installed additional scripts in ${PREFIX}/share/examples/exim,
  helping with the Exim 3 -> Exim 4 transition now that mail/exim-old is gone

- mention the ChangeLog, the transition scripts and the
  mail/exim-doc-* ports in POST-INSTALL-NOTES, remove the
  reference to the info files

- install manpages even if NOPORTDOCS is defined (fixing NOPORTDOCS build)

- made `make PREFIX=/somthing/other/than/usr/local' really work

- incorporated PR 56117 (WITH_MSQL_VER),
  submitted by Pat Lashley <patl+freebsd@volant.org>

- incorporated PR 57099 (WITH_DNSDB),
  submitted by Mark Foster <mark@foster.cc>

- made OpenLDAP selection more standard (WITH_OPENLDAP, WITH_OPENLDAP_VER),
  deprecated all old LDAP options (sorry, but it got too tangly)

- made BerkeleyDB selection option WITH_BDB_VER, deprecated DB_LIB_VERSION

- respect bsd.ports.mk defaults of MySQL 4.0 and OpenLDAP 2.1

- added a message to show the zillions of options sorted in one place

- killed exim-ldap (OpenLDAP 1.2 is ancient)

- mark the exim-* slave ports as conflicting each other

- introduce WITH_DEFAULT_CHARSET

don't forget to delete exim-ldap and update exim-ldap2,
and:

* update to exim-4.24

ftp://ftp.fillmore-labs.com/pub/FreeBSD/patches/exim-4.24.patch.bz2
MD5 (exim-4.24.patch.bz2) = ca4f7a5194141c2a03ac198ac058308e

Summary:

- update to 4.24

- no wishlist item again: eqi is part of exim

- introduce WITHOUT_ALT_CONFIG_PREFIX:
  Per default, we only allow configuration files in
  /usr/local/etc/exim/.

  This may break some configurations (and exim -bV -C /dev/null),
  but the FreeBSD port has perl enabled by default, and it is
  trivial to write a perl exploit that gives root access when
  the mailnull account is compromised.

You commit the first patch (feature enhancements for 4.22) now, and either wait
for Tom to come back and commit the second patch then, or serve a patched patch
from your account:

PATCH_SITES=		${MASTER_SITE_LOCAL}
PATCH_SITE_SUBDIR=	sheldonh

copy it from

ftp://ftp.fillmore-labs.com/pub/FreeBSD/patches/exiscan-acl-4.24-12.patch.bz2
MD5 (exiscan-acl-4.24-12.patch.bz2) = c33a91f584eb0501185d7caef9e4b464

Regards
    Oliver
Comment 8 Oliver Eikemeier 2003-09-27 14:41:03 UTC
I forgot one point in the first summary:

- checks if clamav is in group mail on installation time
Comment 9 Oliver Eikemeier 2003-09-29 11:04:13 UTC
unified patch using Toms exiscan-acl-4.24-12 at

ftp://ftp.fillmore-labs.com/pub/FreeBSD/patches/exim-4.24_final.patch.bz2 
MD5 (exim-4.24_final.patch.bz2) = b9617f893c8cf5946f3afaa52e05a855
Comment 10 Sheldon Hearn 2003-09-29 11:14:07 UTC
On (2003/09/29 12:04), Oliver Eikemeier wrote:

> unified patch using Toms exiscan-acl-4.24-12 at
> 
> ftp://ftp.fillmore-labs.com/pub/FreeBSD/patches/exim-4.24_final.patch.bz2 

Great, just what I was looking for. :-)

Why is this change required in pkg-plist:

-sbin/exim-%%EXIM_VERSION%%-1
+sbin/exim-%%EXIM_VERSION%%

?

Ciao,
Sheldon.
Comment 11 Sheldon Hearn freebsd_committer freebsd_triage 2003-09-29 12:54:32 UTC
State Changed
From-To: open->closed

Committed, thanks!  As discussed in private mail, I've left out the 
change to the pre-everything stage.  Also, I excluded the clamav user 
warning in pkg-install, which I think will have limited (if any) 
real-world benefit.