ports/78923: [UPDATE] Some changes on qmail and all slave ports

Renato Botelho renato at galle.com.br
Wed Mar 16 17:10:02 UTC 2005


>Number:         78923
>Category:       ports
>Synopsis:       [UPDATE] Some changes on qmail and all slave ports
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Wed Mar 16 17:10:01 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Renato Botelho
>Release:        FreeBSD 5.3-RELEASE-p5 i386
>Organization:
Galle Folheados - http://www.galle.com.br
>Environment:
System: FreeBSD data.galle.com.br 5.3-RELEASE-p5 FreeBSD 5.3-RELEASE-p5 #7: Thu Mar 3 09:03:28 BRST 2005 root at srv1.galle.com.br:/usr/obj/usr/src/sys/GALLE i386
>Description:
I think is a good idea remove perl dependence on qmail ports. Today, it's used just to change some files and by two scripts, mkaliasdir and pkg-install.

Here is a version of qmail and all slave ports, with the first step to do this, and some other changes.

If this PR is approved, I'll work to convert pkg-install and mkaliasdir from perl to sh and remove all perl dependencies.

Resume of changes:
- Remove ${PERL} use on Makefiles, change it to ${REINPLACE_CMD} and ${SED}
- Change LIB_DEPEND to USE_MYSQL on qmail-mysql
- Reduce portlint WARN and FATAL messages
- Change PRE_MK_INCLUDED to _PREMKINCLUDED, PRE_MK_INCLUDED was not set on all slave ports.

Files added:
- mail/qmail/files/bootfiles.sed.in

Qmail maintainer (lioux at freebsd.org) was cc'd.

>How-To-Repeat:
>Fix:

--- qmail-ports.diff begins here ---
diff -ruN --exclude=CVS mail.orig/qmail/Makefile mail/qmail/Makefile
--- mail.orig/qmail/Makefile	Fri Mar 11 13:40:55 2005
+++ mail/qmail/Makefile	Wed Mar 16 13:21:04 2005
@@ -6,7 +6,7 @@
 #
 
 PORTNAME=	qmail
-PORTVERSION?= 	${QMAIL_VERSION}
+PORTVERSION?=	${QMAIL_VERSION}
 PORTREVISION?=	3
 CATEGORIES=	mail
 MASTER_SITES+=	http://cr.yp.to/software/ \
@@ -16,6 +16,9 @@
 		${MASTER_SITE_QMAIL}
 DISTNAME=	${PORTNAME}-${QMAIL_VERSION}
 
+MAINTAINER?=	lioux at FreeBSD.org
+COMMENT?=	A secure, reliable, efficient, simple, and fast MTA
+
 # qmail-* skeleton ports including this port may not want
 # its patches
 .if !defined(MAIN_QMAIL_PORT_DNS_PATCH_BARRIER)
@@ -34,10 +37,10 @@
 PATCHFILES+=	sendmail-flagf.patch:sendmail_flagf
 .endif # MAIN_QMAIL_PORT_SENDMAIL_F_PATCH_BARRIER
 
-PATCH_SITES+=  ${MASTER_SITE_LOCAL:S/$/:local,dns,ldap,mysql,smtp_auth_tls,tls/}
-PATCH_SITE_SUBDIR+=    lioux/:local,dns,ldap,mysql,smtp_auth_tls,tls
+PATCH_SITES+=	${MASTER_SITE_LOCAL:S/$/:local,dns,ldap,mysql,smtp_auth_tls,tls/}
+PATCH_SITE_SUBDIR+=	lioux/:local,dns,ldap,mysql,smtp_auth_tls,tls
 
-MASTER_SITE_QMAIL+= \
+MASTER_SITE_QMAIL+=	\
 	http://qmail.geto.net/%SUBDIR%/ \
 	http://qmail.palomine.net/%SUBDIR%/ \
 	http://qmail.mirrors.summersault.com/%SUBDIR%/ \
@@ -114,7 +117,7 @@
 # MAIN_QMAIL_PORT_WITH_OUTGOINGIP_PATCH_BARRIER
 #
 .if defined(WITH_QMAILQUEUE_PATCH)&&!defined(MAIN_QMAIL_PORT_WITH_QMAILQUEUE_PATCH_BARRIER)
-PATCHFILES+= 	qmailqueue-patch
+PATCHFILES+=	qmailqueue-patch
 .endif # WITH_QMAILQUEUE_PATCH && !MAIN_QMAIL_PORT_WITH_QMAILQUEUE_PATCH_BARRIER
 .if defined(WITH_BIG_TODO_PATCH)&&!defined(MAIN_QMAIL_PORT_WITH_BIG_TODO_PATCH_BARRIER)
 PATCHFILES+=	big-todo.103.patch
@@ -126,9 +129,6 @@
 PATCHFILES+=	outgoingip.patch
 .endif # WITH_OUTGOINGIP_PATCH && !MAIN_QMAIL_PORT_WITH_OUTGOINGIP_PATCH_BARRIER
 
-MAINTAINER?=	lioux at FreeBSD.org
-COMMENT?=	A secure, reliable, efficient, simple, and fast MTA
-
 NO_PACKAGE=	djb\'s packaging license does not allow non-standard\
 		qmail binary distributions
 
@@ -213,6 +213,7 @@
 
 NO_MTREE=	yes
 USE_PERL5_BUILD=yes
+USE_REINPLACE=	yes
 
 .if !defined(_PREMKINCLUDED)
 .include <bsd.port.pre.mk>
@@ -275,7 +276,7 @@
 .endif
 
 post-post-patch:
-	@${PERL} -pi -ne "s!/var/qmail!${PREFIX}!;s!/usr/local/!${LOCALBASE}/!" ${WRKSRC}/Makefile
+	@${REINPLACE_CMD} "s!/var/qmail!${PREFIX}!;s!/usr/local/!${LOCALBASE}/!" ${WRKSRC}/Makefile
 
 # If you want to change the qmail users, they must be changed in both
 # work/*/conf-users and pkg/INSTALL.
@@ -343,13 +344,17 @@
 
 # Ugh...  ;-)
 thereal-post-patch:
+	@${SED} 's!%%PREFIX%%!${PREFIX}!g; \
+	         s!%%ECHO_CMD%%!${ECHO_CMD}!g' \
+	         ${FILESDIR}/bootfiles.sed.in > \
+	         ${WRKDIR}/bootfiles.sed
 .for i in ${BOOTFILES}
 	@if  [ -f ${i}.sh ] ; \
 	then \
-		${PERL} -p -ne 's!QMAIL/!${PREFIX}/!;s!^(exec)!case "\$$1" in\nstart)\n\t\1!;s!(qmail)$$!\1\&\n\texit 0\n\t;;\nstop)\n\texec killall qmail-send\n\t;;\n*)\n\t${ECHO_CMD} "Usage: `basename \$$0` {start|stop}" >&2\n\texit 64\n\t;;\nesac!' $i.sh > ${WRKDIR}/${i:T} ; \
+		${SED} -f ${WRKDIR}/bootfiles.sed $i.sh > ${WRKDIR}/${i:T} ; \
 	elif [ -f ${i} ] ; \
 	then \
-		${PERL} -p -ne 's!QMAIL/!${PREFIX}/!;s!^(exec)!case "\$$1" in\nstart)\n\t\1!;s!(qmail)$$!\1\&\n\texit 0\n\t;;\nstop)\n\texec killall qmail-send\n\t;;\n*)\n\t${ECHO_CMD} "Usage: `basename \$$0` {start|stop}" >&2\n\texit 64\n\t;;\nesac!' $i > ${WRKDIR}/${i:T} ; \
+		${SED} -f ${WRKDIR}/bootfiles.sed $i > ${WRKDIR}/${i:T} ; \
 	fi
 .endfor
 	@${SED} s!/var/qmail/!${PREFIX}/!g ${FILESDIR}/mailer.conf.sample > \
diff -ruN --exclude=CVS mail.orig/qmail/files/bootfiles.sed.in mail/qmail/files/bootfiles.sed.in
--- mail.orig/qmail/files/bootfiles.sed.in	Wed Dec 31 21:00:00 1969
+++ mail/qmail/files/bootfiles.sed.in	Wed Mar 16 12:33:33 2005
@@ -0,0 +1,15 @@
+s!QMAIL/!%%PREFIX%%/!
+s!^\(exec\)!case "\$1" in\
+start)\
+\	\1!
+s!\(qmail\)$!\1\&\
+\	exit 0\
+\	;;\
+stop)\
+\	exec killall qmail-send\
+\	;;\
+*)\
+\	%%ECHO_CMD%% "Usage: `basename \$0` {start|stop}" >\&2\
+\	exit 64\
+\	;;\
+esac!
diff -ruN --exclude=CVS mail.orig/qmail/pkg-install mail/qmail/pkg-install
--- mail.orig/qmail/pkg-install	Sat Jul 25 17:05:53 1998
+++ mail/qmail/pkg-install	Tue Mar 15 09:49:11 2005
@@ -15,6 +15,8 @@
 	exit 0;
 }
 
+$pw = "/usr/sbin/pw";
+$nonexistent = "/nonexistent";
 @groups = ("qmail", "qnofiles");
 %users = ('qmaild', "qnofiles", 'qmaill', "qnofiles", 'qmailp', "qnofiles",
           'qmailq', "qmail", 'qmailr', "qmail", 'qmails', "qmail");
@@ -33,7 +35,7 @@
 		do checkrpw;  # May exit
 
 		$x = "-g $gids{$group}";
-		$result = system ("/usr/sbin/pw groupadd $group $x");
+		$result = system ("$pw groupadd $group $x");
 		if ($result) {
 			die "Failed to add group $group as gid $gids{$group}\n";
 		}
@@ -44,7 +46,7 @@
 	do checkrpw;  # May exit
 
 	$x = "-u $uids{'alias'}";
-	$result = system ("/usr/sbin/pw useradd alias -g qnofiles -d \"$ENV{PKG_PREFIX}/alias\" -s /nonexistent $x");
+	$result = system ("$pw useradd alias -g qnofiles -d \"$ENV{PKG_PREFIX}/alias\" -s $nonexistent $x");
 	if ($result) {
 		die "Failed to add user alias as uid $uids{'alias'}\n";
 	}
@@ -55,7 +57,7 @@
 		do checkrpw;  # May exit
 
 		$x = "-u $uids{$user}";
-		$result = system ("/usr/sbin/pw useradd $user -g $users{$user} -d \"$ENV{PKG_PREFIX}\" -s /nonexistent $x");
+		$result = system ("$pw useradd $user -g $users{$user} -d \"$ENV{PKG_PREFIX}\" -s $nonexistent $x");
 		if ($result) {
 			die "Failed to add user $user as uid $uids{$user}\n";
 		}
@@ -84,7 +86,7 @@
 exit 0;
 
 sub checkrpw {
-	if (! -x "/usr/sbin/pw") {
+	if (! -x "$pw") {
 		print <<'EOM';
 This system looks like a pre-2.2 version of FreeBSD.  We see that it
 is missing the "pw" utility.  We need this utility.  Please get and
@@ -93,7 +95,7 @@
   ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/usr.sbin/pw.tar.gz
 
 EOM
-		die "No /usr/sbin/pw";
+		die "No $pw";
 	}
 
 	if ($> != 0) {
diff -ruN --exclude=CVS mail.orig/qmail-ldap/Makefile mail/qmail-ldap/Makefile
--- mail.orig/qmail-ldap/Makefile	Fri Feb 11 19:11:51 2005
+++ mail/qmail-ldap/Makefile	Wed Mar 16 08:38:14 2005
@@ -13,20 +13,21 @@
 
 PATCH_SITES=	http://www.nrg4u.com/qmail/:ldap
 PATCHFILES=	qmail-ldap-1.03-${LDAP_PATCH_DATE}.patch.gz:ldap
-PATCH_DIST_STRIP+=	-p1
-
-EXTRA_PATCHES+=	${QMAIL_PORT_PATCHDIR}/patch-ab ${QMAIL_PORT_PATCHDIR}/patch-ac
 
 MAINTAINER=	lioux at FreeBSD.org
 COMMENT=	A SECURE, reliable, and FAST MTA for UNIX systems WITH LDAP support
 
-CONFLICTS=	nss-* emboss-* digest-*
+EXTRA_PATCHES+=	${QMAIL_PORT_PATCHDIR}/patch-ab ${QMAIL_PORT_PATCHDIR}/patch-ac
+PATCH_DIST_STRIP+=	-p1
+
+CONFLICTS=	nss-[0-9]* emboss-[0-9]* digest-[0-9]*
 
 USE_OPENLDAP=	yes
+USE_REINPLACE=	yes
 PKGNAMESUFFIX:=	${PKGNAMESUFFIX}2
 
 .if !defined(WITHOUT_TLS)
-PKGNAMESUFFIX:= ${PKGNAMESUFFIX}-with_tls
+PKGNAMESUFFIX:=	${PKGNAMESUFFIX}-with_tls
 USE_OPENSSL=	yes
 .endif # WITHOUT_TLS
 
@@ -41,7 +42,7 @@
 PREFIX?=	${QMAIL_PORT_PREFIX}
 #PREFIX=		/var/qmail-ldap
 
-.if !defined(PRE_MK_INCLUDED)
+.if !defined(_PREMKINCLUDED)
 .include <bsd.port.pre.mk>
 .endif
 
@@ -71,32 +72,32 @@
 slaveport-post-patch: qmail-ldap-post-patch
 
 qmail-ldap-post-patch:
-	@${PERL} -pi -ne "s|LDAPLIBS=-L/usr/local/lib|LDAPLIBS=-L${LOCALBASE}/lib|;s|LDAPINCLUDES=-I/usr/local/include|LDAPINCLUDES=-I${LOCALBASE}/include|" ${WRKSRC}/Makefile
+	@${REINPLACE_CMD} "s|LDAPLIBS=-L/usr/local/lib|LDAPLIBS=-L${LOCALBASE}/lib|;s|LDAPINCLUDES=-I/usr/local/include|LDAPINCLUDES=-I${LOCALBASE}/include|" ${WRKSRC}/Makefile
 .if !defined(WITHOUT_TLS)
-	@${PERL} -pi -ne "s|#TLSON=|TLSON=|; \
+	@${REINPLACE_CMD} "s|#TLSON=|TLSON=|; \
 		s|#TLSINCLUDES=-I/usr/local/include|TLSINCLUDES=-I${OPENSSLBASE}/include|; \
 		s|#TLSLIBS=-L/usr/local/lib|TLSLIBS=-L${OPENSSLBASE}/lib|; \
 		s|#OPENSSLBIN=/usr/local/bin/openssl|OPENSSLBIN=${OPENSSLBASE}/bin/openssl|" \
 			${WRKSRC}/Makefile
 .endif # !WITHOUT_TLS
 .if !defined(WITHOUT_LDAP_CLUSTER)
-	@${PERL} -pi -ne "s|#LDAPFLAGS=-DQLDAP_CLUSTER\s+-DEXTERNAL_TODO|LDAPFLAGS\+=-DQLDAP_CLUSTER -DEXTERNAL_TODO#|" ${WRKSRC}/Makefile
+	@${REINPLACE_CMD} "s|#LDAPFLAGS=-DQLDAP_CLUSTER\s+-DEXTERNAL_TODO|LDAPFLAGS\+=-DQLDAP_CLUSTER -DEXTERNAL_TODO#|" ${WRKSRC}/Makefile
 .endif # WITHOUT_LDAP_CLUSTER
 .if !defined(WITHOUT_AUTOMAILDIRMAKE)
-	@${PERL} -pi -ne "s|#MDIRMAKE=-DAUTOMAILDIRMAKE|MDIRMAKE=-DAUTOMAILDIRMAKE|" ${WRKSRC}/Makefile
+	@${REINPLACE_CMD} "s|#MDIRMAKE=-DAUTOMAILDIRMAKE|MDIRMAKE=-DAUTOMAILDIRMAKE|" ${WRKSRC}/Makefile
 .endif # WITHOUT_AUTOMAILDIRMAKE
 .if !defined(WITHOUT_AUTOHOMEDIRMAKE)
-	@${PERL} -pi -ne "s|#HDIRMAKE=-DAUTOHOMEDIRMAKE|HDIRMAKE=-DAUTOHOMEDIRMAKE|" ${WRKSRC}/Makefile
+	@${REINPLACE_CMD} "s|#HDIRMAKE=-DAUTOHOMEDIRMAKE|HDIRMAKE=-DAUTOHOMEDIRMAKE|" ${WRKSRC}/Makefile
 .endif # WITHOUT_AUTOHOMEDIRMAKE
 .if defined(WITH_LDAP_DEBUG)
-	@${PERL} -pi -ne "s|#DEBUG=-DDEBUG|DEBUG=-DDEBUG|" ${WRKSRC}/Makefile
+	@${REINPLACE_CMD} "s|#DEBUG=-DDEBUG|DEBUG=-DDEBUG|" ${WRKSRC}/Makefile
 .endif # WITH_LDAP_DEBUG
 .if defined(WITH_CLEARTEXTPASSWD)
-	@${PERL} -pi -ne "s|^#\s*-DCLEARTEXTPASSWD.*$$|LDAPFLAGS\+=-DCLEARTEXTPASSWD|" \
+	@${REINPLACE_CMD} "s|^#\s*-DCLEARTEXTPASSWD.*$$|LDAPFLAGS\+=-DCLEARTEXTPASSWD|" \
 		${WRKSRC}/Makefile
 .endif # WITH_CLEARTEXTPASSWD
 .if defined(WITH_DASH_EXT)
-	@${PERL} -pi -ne "s|^# -DDASH_EXT.*$$|LDAPFLAGS\+=-DDASH_EXT|" \
+	@${REINPLACE_CMD} "s|^# -DDASH_EXT.*$$|LDAPFLAGS\+=-DDASH_EXT|" \
 		${WRKSRC}/Makefile
 .endif # WITH_DASH_EXT
 
@@ -113,7 +114,5 @@
 DESCR=		${PKGDIR_LOCAL}/pkg-descr
 PKGMESSAGE=	${PKGDIR_LOCAL}/pkg-message
 PLIST=		${PKGDIR_LOCAL}/pkg-plist
-
-PRE_MK_INCLUDED=	yes
 
 .include "${MASTERDIR}/Makefile"
diff -ruN --exclude=CVS mail.orig/qmail-mysql/Makefile mail/qmail-mysql/Makefile
--- mail.orig/qmail-mysql/Makefile	Tue Mar 15 12:05:50 2005
+++ mail/qmail-mysql/Makefile	Wed Mar 16 08:38:24 2005
@@ -18,6 +18,7 @@
 COMMENT=	A SECURE, reliable, and FAST MTA for UNIX systems WITH MySQL support
 
 USE_MYSQL=	yes
+USE_REINPLACE=	yes
 
 # patches from the master port that brake this one are now allowed
 MAIN_QMAIL_PORT_WITH_QMAILQUEUE_PATCH_BARRIER=	yes
@@ -28,7 +29,7 @@
 PREFIX?=	${QMAIL_PORT_PREFIX}
 #PREFIX=		/var/qmail-mysql
 
-.if !defined(PRE_MK_INCLUDED)
+.if !defined(_PREMKINCLUDED)
 .include <bsd.port.pre.mk>
 .endif
 
@@ -40,7 +41,7 @@
 slaveport-post-patch: qmail-mysql-post-patch
 
 qmail-mysql-post-patch:
-	@${PERL} -pi -ne \
+	@${REINPLACE_CMD} \
 		 's|/opt/mysql|${LOCALBASE}|' \
 			${WRKSRC}/Makefile
 
@@ -49,7 +50,5 @@
 PKGDIR_LOCAL=	${.CURDIR}
 DESCR=		${PKGDIR_LOCAL}/pkg-descr
 PKGMESSAGE=	${PKGDIR_LOCAL}/pkg-message
-
-PRE_MK_INCLUDED=	yes
 
 .include "${MASTERDIR}/Makefile"
diff -ruN --exclude=CVS mail.orig/qmail-smtp_auth+tls/Makefile mail/qmail-smtp_auth+tls/Makefile
--- mail.orig/qmail-smtp_auth+tls/Makefile	Thu Mar 11 23:28:38 2004
+++ mail/qmail-smtp_auth+tls/Makefile	Wed Mar 16 08:38:29 2005
@@ -20,6 +20,7 @@
 ONLY_FOR_ARCHS=	i386
 
 USE_OPENSSL=	YES
+USE_REINPLACE=	yes
 
 # Patches from the main qmail port are not wanted
 MAIN_QMAIL_PORT_WITH_OUTGOINGIP_PATCH_BARRIER=	yes
@@ -30,7 +31,7 @@
 PREFIX?=	${QMAIL_PORT_PREFIX}
 #PREFIX=		/var/qmail-smtp_auth+tls
 
-.if !defined(PRE_MK_INCLUDED)
+.if !defined(_PREMKINCLUDED)
 .include <bsd.port.pre.mk>
 .endif
 
@@ -58,7 +59,7 @@
 	@${HEAD} -6 ${DISTDIR}/qmail-1.03-starttls-smtp-auth.patch \
 		| ${TAIL} -5 \
 		> ${WRKDIR}/SMTP_AUTH+TLS.readme
-	@${PERL} -pi -ne "s|/usr/local/ssl|${OPENSSLBASE}|" ${WRKSRC}/Makefile
+	@${REINPLACE_CMD} "s|/usr/local/ssl|${OPENSSLBASE}|" ${WRKSRC}/Makefile
 
 # Primary Ugh... ;-)
 # idea stolen from www/apache13-ssl, a target written by adam at algroup.co.uk
diff -ruN --exclude=CVS mail.orig/qmail-spamcontrol/Makefile mail/qmail-spamcontrol/Makefile
--- mail.orig/qmail-spamcontrol/Makefile	Mon Mar 14 16:59:10 2005
+++ mail/qmail-spamcontrol/Makefile	Wed Mar 16 08:10:47 2005
@@ -33,12 +33,13 @@
 		MOREIPME	"Additional control files moreipme & notipme" off \
 		BIGTODO		"Bruce Guenter's BigToDo patch" off
 
-.if !defined(PRE_MK_INCLUDED)
+.if !defined(_PREMKINCLUDED)
 .include <bsd.port.pre.mk>
 .endif
 
 # Using default from master port, i.e., /var/qmail
-QMAIL_PORT=	${PORTSDIR}/mail/qmail
+#QMAIL_PORT=	${PORTSDIR}/mail/qmail
+QMAIL_PORT=	${.CURDIR}/../qmail
 QMAIL_PORT_PREFIX!=	cd ${QMAIL_PORT} && ${MAKE} -V PREFIX
 MASTERDIR=	${QMAIL_PORT}
 
diff -ruN --exclude=CVS mail.orig/qmail-tls/Makefile mail/qmail-tls/Makefile
--- mail.orig/qmail-tls/Makefile	Sun Mar  7 18:08:27 2004
+++ mail/qmail-tls/Makefile	Wed Mar 16 08:38:38 2005
@@ -18,6 +18,7 @@
 COMMENT=	A SECURE, reliable, and FAST MTA for UNIX systems WITH TLS support
 
 USE_OPENSSL=	YES
+USE_REINPLACE=	yes
 
 # Patches from the main qmail port are not wanted
 MAIN_QMAIL_PORT_WITH_OUTGOINGIP_PATCH_BARRIER=	yes
@@ -28,7 +29,7 @@
 PREFIX?=	${QMAIL_PORT_PREFIX}
 #PREFIX=		/var/qmail-tls
 
-.if !defined(PRE_MK_INCLUDED)
+.if !defined(_PREMKINCLUDED)
 .include <bsd.port.pre.mk>
 .endif
 
@@ -53,7 +54,7 @@
 
 qmail-tls-post-patch:
 	@${HEAD} -74 ${DISTDIR}/tls.patch > ${WRKDIR}/TLS.readme
-	@${PERL} -pi -ne "s|/usr/local/ssl|${OPENSSLBASE}|" ${WRKSRC}/Makefile
+	@${REINPLACE_CMD} "s|/usr/local/ssl|${OPENSSLBASE}|" ${WRKSRC}/Makefile
 
 # Primary Ugh... ;-)
 # idea stolen from www/apache13-ssl, a target written by adam at algroup.co.uk
--- qmail-ports.diff ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list