Bug 174873

Summary: [PATCH] mail/fetchmail: update to 6.3.24
Product: Ports & Packages Reporter: Po-Chien Lin <linpc>
Component: Individual Port(s)Assignee: Matthias Andree <mandree>
Status: Closed FIXED    
Severity: Affects Only Me CC: chalpin
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
fetchmail-6.3.24.patch
none
fetchmail-6.3.24-v3.patch none

Description Po-Chien Lin 2013-01-01 00:10:00 UTC
- Update to 6.3.24
- Switch to OptionsNG
- Remove unused variables: PATCH_STRIP, MAKE_ENV
- Rearrange ordering of some sections
- Use PORTDOCS to handle document list instead of pkg-plist
- Alter pkg-plst to make portlint(1) happier
- Cleanup TABs
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2013-01-01 00:10:14 UTC
Maintainer of mail/fetchmail,

Please note that PR ports/174873 has just been submitted.

If it contains a patch for an upgrade, an enhancement or a bug fix
you agree on, reply to this email stating that you approve the patch
and a committer will take care of it.

The full text of the PR can be found at:
    http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/174873

-- 
Edwin Groothuis via the GNATS Auto Assign Tool
edwin@FreeBSD.org
Comment 2 Edwin Groothuis freebsd_committer freebsd_triage 2013-01-01 00:10:15 UTC
State Changed
From-To: open->feedback

Awaiting maintainers feedback (via the GNATS Auto Assign Tool)
Comment 3 Matthias Andree freebsd_committer freebsd_triage 2013-01-06 19:41:53 UTC
Responsible Changed
From-To: freebsd-ports-bugs->mandree

I'll take it.
Comment 4 Matthias Andree freebsd_committer freebsd_triage 2013-01-07 22:42:33 UTC
State Changed
From-To: feedback->open

feedback received
Comment 5 Matthias Andree freebsd_committer freebsd_triage 2013-01-07 23:12:26 UTC
Po-Chien and Corey,

thanks for the submission and the work with the port, clean-up, review,
feedback.

There are new issues with the port regarding the Python option,
resulting from its auto-detection in the ./configure.  This is a case
similar to
<http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/book.html#AEN2780>,
but not quite the same because the override is more subtle.

The failure-inducing change is the removal of PYTHON=: from the
CONFIGURE_ARGS command line that forced Python to "off" unless told
otherwise.

Note that fetchmailconf.py is installed to libexec no matter if the X11
option is set or not.

The overzealous CONFIGURE_ARGS cleanup has these consequences:
- on systems that do have Python, the ./configure picks it up in spite
of an unset USE_PYTHON, and installs and compiles fetchmailconf.py to
the Python site directory, rather than libexec/fetchmailconf.py.

It also leaves three files behind on deinstallation. This is with "port
test" (it will not show up in Tinderboxes, but only on builds in real
systems):

===>   Deinstalling fetchmail-6.3.24
==> You should manually remove the "fetchmail" user.
===> Extra files and directories check
lib/python2.7/site-packages/fetchmailconf.py
lib/python2.7/site-packages/fetchmailconf.pyc
lib/python2.7/site-packages/fetchmailconf.pyo


- on systems that do not have python, fetchmailconf.py etc. are not
built/installed outside libexec/, but the port seems fine.

I have not checked behaviour with the X11 option set.

I have not checked how the end-user would use the
lib/python2.7/site-packages/fetchmailconf.pyc rather than the one from
libexec.

One approach to fix this is to add PYTHON=: back to CONFIGURE_ARGS if
the X11 option is unset. It comes at the cost of running fetchmailconf
in an uncompiled version.


Can the two of you please sort this out and submit a followup?


Thank you.

Best regards,
Matthias
Comment 6 Matthias Andree freebsd_committer freebsd_triage 2013-01-07 23:13:01 UTC
State Changed
From-To: open->feedback

more feedback required from submitter and maintainer
Comment 7 Po-Chien Lin 2013-01-08 04:08:22 UTC
It's my fault not double-checking the README.packaging file.

The attached patch is modified after Corey's version,
and make the following changes:

- Add PYTHON=: back to CONFIGURE_ARGS if X11 option is unset.
- Set USE_PYTHON_RUN only if X11 option is set.
- Rename files/fetchmailconf to files/fetchmailconf.in,
  add it into SUB_FILES, and make the corresponding change in pre-patch target.
- The `fetchmailconf' wrapper will only be installed when X11 option is unset,
  otherwise we use the native wrapper which will directly call the
  script under PYTHON_SITELIBDIR.
- Add %%X11%% and %%NOX11%% prefix to PLIST_SUB.

On Mon, Jan 07, 2013 at 11:13:09PM +0000, mandree@FreeBSD.org wrote:
> Synopsis: [PATCH] mail/fetchmail: update to 6.3.24
> 
> State-Changed-From-To: open->feedback
> State-Changed-By: mandree
> State-Changed-When: Mon Jan 7 23:13:01 UTC 2013
> State-Changed-Why: 
> more feedback required from submitter and maintainer
> 
> http://www.freebsd.org/cgi/query-pr.cgi?pr=174873
Comment 8 Matthias Andree freebsd_committer freebsd_triage 2013-01-09 23:11:58 UTC
Corey, do you approve?
Comment 9 Corey Halpin 2013-01-10 00:50:43 UTC
On 2013-01-10, Matthias Andree wrote:
> Corey, do you approve?

 
  Yes, I do.

~crh
Comment 10 dfilter service freebsd_committer freebsd_triage 2013-01-10 01:36:29 UTC
Author: mandree
Date: Thu Jan 10 01:36:21 2013
New Revision: 310167
URL: http://svnweb.freebsd.org/changeset/ports/310167

Log:
  Changes by Po-Chien Lin:
  - Update to 6.3.24
  - Switch to OptionsNG
  - Remove unused variables: PATCH_STRIP, MAKE_ENV
  - Rearrange ordering of some sections
  - Use PORTDOCS to handle document list instead of pkg-plist
  - Alter pkg-plst to make portlint(1) happier
  - Cleanup TABs
  - Set USE_PYTHON_RUN only if X11 option is set.
  - Rename files/fetchmailconf to files/fetchmailconf.in,
    add it into SUB_FILES, and make the corresponding change in
    pre-patch target.
  - The `fetchmailconf' wrapper will only be installed when X11
    option is unset, otherwise we use the native wrapper which will
    directly call the script under PYTHON_SITELIBDIR.
  - Add %%X11%% and %%NOX11%% prefix to PLIST_SUB.
  
  Changes by Corey Halpin (maintainer):
  - Update MASTER_SITES
  
  PR:		174873
  Submitted by:	Po-Chien Lin <linpc@cs.nctu.edu.tw>
  Approved by:	Corey Halpin (maintainer)

Added:
  head/mail/fetchmail/files/fetchmailconf.in   (contents, props changed)
Deleted:
  head/mail/fetchmail/files/fetchmailconf
Modified:
  head/mail/fetchmail/Makefile
  head/mail/fetchmail/distinfo   (contents, props changed)
  head/mail/fetchmail/pkg-plist

Modified: head/mail/fetchmail/Makefile
==============================================================================
--- head/mail/fetchmail/Makefile	Thu Jan 10 00:27:02 2013	(r310166)
+++ head/mail/fetchmail/Makefile	Thu Jan 10 01:36:21 2013	(r310167)
@@ -1,7 +1,4 @@
-# New ports collection makefile for:	fetchmail
-# Date created:		25 Feb 2000
-# Whom:			Ville Eerola <ve@sci.fi>
-#
+# Created by: Ville Eerola <ve@sci.fi>
 # $FreeBSD$
 #
 # NOTE:  The fetchmailconf program (an interactive program for
@@ -11,12 +8,10 @@
 # want fetchmailconf to work, define the X11 option.
 
 PORTNAME=	fetchmail
-PORTVERSION=	6.3.22
+PORTVERSION=	6.3.24
 CATEGORIES=	mail ipv6
-MASTER_SITES=	BERLIOS/${PORTNAME}/ \
-		SF/${PORTNAME}/branch_6.3/ \
-		http://mandree.home.pages.de/${PORTNAME}/ \
-		SUNSITE/system/mail/pop/${PORTNAME}/
+MASTER_SITES=	SF/${PORTNAME}/branch_6.3/ \
+		http://mandree.home.pages.de/${PORTNAME}/
 
 MAINTAINER=	chalpin@cs.wisc.edu
 COMMENT=	Batch mail retrieval utility for IMAP/POP3/ETRN/ODMR
@@ -24,61 +19,63 @@ COMMENT=	Batch mail retrieval utility fo
 RUN_DEPENDS=	${LOCALBASE}/share/certs/ca-root-nss.crt:${PORTSDIR}/security/ca_root_nss
 
 # Note USERS can only contain a single word as parts below rely on that.
-USERS=		${PORTNAME}
-GROUPS=		${USERS}
+USERS=	${PORTNAME}
+GROUPS=	${USERS}
 
 USE_RC_SUBR=	fetchmail
 FETCHMAILRC=	${PREFIX}/etc/fetchmailrc
 SUB_FILES=	pkg-message
-PATCH_STRIP=	-p1
 
-USE_XZ=		yes
+USE_XZ=	yes
 USE_GMAKE=	yes
 MAKE_JOBS_SAFE=	yes
 GNU_CONFIGURE=	yes
 USE_OPENSSL=	yes
 CONFIGURE_ARGS=	--enable-opie --enable-RPA --enable-SDPS \
-		--with-hesiod=no --enable-fallback=no PYTHON=:
-# bsd.openssl.mk will add the LDFLAGS to CONFIGURE_ENV:
+		--without-hesiod --enable-fallback=no \
+		--with-ssl=${OPENSSLBASE}
+
 LDFLAGS+=	-L${LOCALBASE}/lib
-MAKE_ENV+=	${CONFIGURE_ENV}
-MAN1=		fetchmail.1
-MLINKS=		fetchmail.1 fetchmailconf.1
-
-OPTIONS=	X11	"Python/Tkinter dependencies for fetchmailconf" off \
-		NLS	"National language support (NLS)."		on \
-		NTLM	"Build in support for NTLM/MSN authentication." off \
-		GSSAPI	"Build GSSAPI/Kerberos 5 support" 		on
+MAN1=	fetchmail.1
+MLINKS=	fetchmail.1 fetchmailconf.1
 
-.include <bsd.port.options.mk>
+OPTIONS_DEFINE=	X11 NLS NTLM GSSAPI
+OPTIONS_DEFAULT=	GSSAPI
+X11_DESC=	Python/Tkinter dependencies for ``fetchmailconf''
+NTLM_DESC=	Build in support for NTLM/MSN authentication
+GSSAPI_DESC=	Build GSSAPI/Kerberos 5 support
 
-.if defined(WITH_X11)
-USE_PYTHON=	yes
-RUN_DEPENDS+=	${LOCALBASE}/lib/${PYTHON_VERSION}/site-packages/_tkinter.so:${PORTSDIR}/x11-toolkits/py-tkinter
-.endif
+PORTDOCS=	FAQ FEATURES NEWS NOTES README README.SSL \
+		design-notes.html fetchmail-FAQ.html fetchmail-features.html \
+		esrs-design-notes.html
 
-.include <bsd.port.pre.mk>
+.include <bsd.port.options.mk>
 
 # Pop2 is obsolete
 .if defined(WITH_POP2)
-CONFIGURE_ARGS+=--enable-POP2
+CONFIGURE_ARGS+=	--enable-POP2
 .endif
 
-CONFIGURE_ARGS+=	--with-ssl=${OPENSSLBASE}
-
-DOCS=		FAQ FEATURES NEWS NOTES README README.SSL \
-		design-notes.html fetchmail-FAQ.html fetchmail-features.html \
-		esrs-design-notes.html
+.if ${PORT_OPTIONS:MX11}
+USE_PYTHON_RUN=	yes
+RUN_DEPENDS+=	${PYTHON_PKGNAMEPREFIX}tkinter>=0:${PORTSDIR}/x11-toolkits/py-tkinter
+PLIST_SUB+=	X11="" NOX11="@comment "
+.else
+CONFIGURE_ARGS+=	PYTHON=:
+SUB_FILES+=	fetchmailconf
+PLIST_SUB+=	X11="@comment " NOX11=""
+.endif
 
-.if !defined(WITHOUT_NLS)
+.if ${PORT_OPTIONS:MNLS}
 CONFIGURE_ARGS+=	--enable-nls
-PLIST_SUB+=		NLS=""
-USE_GETTEXT=		yes
+PLIST_SUB+=	NLS=""
+USE_GETTEXT=	yes
 .else
 CONFIGURE_ARGS+=	--disable-nls
-PLIST_SUB+=		NLS="@comment "
+PLIST_SUB+=	NLS="@comment "
 .endif
 
+.if ${PORT_OPTIONS:MGSSAPI}
 .if !defined(KRB5_HOME)
 .if exists(${LOCALBASE}/lib/libkrb5.a)
 KRB5_HOME=	${LOCALBASE}
@@ -88,42 +85,36 @@ KRB5_HOME=	/usr
 .endif
 
 .if defined(KRB5_HOME) && !exists(${KRB5_HOME}/lib/libkrb5.a)
-BROKEN=		KRB5_HOME is set but doesn't provide lib/libkrb5.a
+BROKEN=	KRB5_HOME is set but doesn\'t provide lib/libkrb5.a
 .endif
 
-.if defined(WITH_GSSAPI)
 .if defined(KRB5_HOME) && exists(${KRB5_HOME}/lib/libkrb5.a)
-CONFIGURE_ARGS += --with-gssapi=${KRB5_HOME}
+CONFIGURE_ARGS+=	--with-gssapi=${KRB5_HOME}
 .endif
 .endif
 
-.if defined(WITH_NTLM)
-CONFIGURE_ARGS += --enable-NTLM
-DOCS+=		README.NTLM
-PLIST_SUB+=	NTLMDOCS="%%PORTDOCS%%"
-.else
-PLIST_SUB+=	NTLMDOCS="%%PORTDOCS%%@comment "
+.if ${PORT_OPTIONS:MNTLM}
+CONFIGURE_ARGS+=	--enable-NTLM
+PORTDOCS+=	README.NTLM
 .endif
 
 pre-patch:
 	@${REINPLACE_CMD} -e "s,^#!/usr/bin/env python,#!${LOCALBASE}/bin/python,g" \
 		${WRKSRC}/fetchmailconf.py
-	@${CP} ${FILESDIR}/fetchmailconf ${WRKDIR}/fetchmailconf
-	@${REINPLACE_CMD} -e "s,@LOCALBASE@,${LOCALBASE},g" \
-		 ${WRKDIR}/fetchmailconf
 
 post-build:
-	@cd ${WRKSRC} && ${MAKE} check
+	@${MAKE} -C ${WRKSRC} check
 
 post-install:
-.if !defined(NOPORTDOCS)
-	${INSTALL} -d -m 555 -o ${DOCOWN} -g ${DOCGRP} ${DOCSDIR}
-	cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${DOCSDIR}
+.if ${PORT_OPTIONS:MDOCS}
+	${MKDIR} ${DOCSDIR}
+	cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${DOCSDIR}
 .endif
 
+.if empty(PORT_OPTIONS:MX11)
 	${INSTALL_SCRIPT} ${WRKDIR}/fetchmailconf ${PREFIX}/bin
 	${INSTALL_SCRIPT} ${WRKSRC}/fetchmailconf.py ${PREFIX}/libexec
-
+.endif
 	${MKDIR} -m 0755 "/var/run/${PORTNAME}"
 	${CHOWN} "${USERS}:${GROUPS}" "/var/run/${PORTNAME}"
 	${INSTALL} -m 644 -o ${USERS} -g ${GROUPS} ${FILESDIR}/fetchmailrc.sample ${PREFIX}/etc/fetchmailrc.sample
@@ -136,4 +127,4 @@ post-install:
 	@${CAT} ${PKGMESSAGE}
 	@${ECHO_CMD} ""
 
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>

Modified: head/mail/fetchmail/distinfo
==============================================================================
--- head/mail/fetchmail/distinfo	Thu Jan 10 00:27:02 2013	(r310166)
+++ head/mail/fetchmail/distinfo	Thu Jan 10 01:36:21 2013	(r310167)
@@ -1,2 +1,2 @@
-SHA256 (fetchmail-6.3.22.tar.xz) = 9ab51a851f79e16258f068e791c39e3e378a99927f70c9635132f4295d70b1a4
-SIZE (fetchmail-6.3.22.tar.xz) = 1260296
+SHA256 (fetchmail-6.3.24.tar.xz) = f6882f00f0d69bbabaa4fbdaccb9231c7c441781fcb95ff763f75589f2328daf
+SIZE (fetchmail-6.3.24.tar.xz) = 1263156

Added: head/mail/fetchmail/files/fetchmailconf.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/mail/fetchmail/files/fetchmailconf.in	Thu Jan 10 01:36:21 2013	(r310167)
@@ -0,0 +1,44 @@
+#!/bin/sh
+#
+# Wrapper for the real fetchmailconf.  Checks whether Python and Tkinter are
+# installed, and runs the real fetchmailconf or alerts the user, as appropriate.
+#
+# $FreeBSD$
+
+LOCALBASE=%%LOCALBASE%%
+
+if [ -x $LOCALBASE/bin/python ] ; then
+	PYTHON_VERSION=python$(${LOCALBASE}/bin/python -c 'import sys; print sys.version[:3]' 2>/dev/null)
+	if [ -e ${LOCALBASE}/lib/${PYTHON_VERSION}/site-packages/_tkinter.so ]; then
+		exec ${LOCALBASE}/libexec/fetchmailconf.py "$@"
+	fi
+fi
+cat <<EOF
+The fetchmailconf program requires Python with Tkinter, which does
+not appear to be installed on this system.  Python can be found in
+the FreeBSD Ports Collection in lang/python, and Tkinter for Python
+can be found in x11-toolkits/py-tkinter.
+EOF
+exit 1
+#!/bin/sh
+#
+# Wrapper for the real fetchmailconf.  Checks whether Python and Tkinter are
+# installed, and runs the real fetchmailconf or alerts the user, as appropriate.
+#
+# $FreeBSD$
+
+LOCALBASE=%%LOCALBASE%%
+
+if [ -x $LOCALBASE/bin/python ] ; then
+	PYTHON_VERSION=python$(${LOCALBASE}/bin/python -c 'import sys; print sys.version[:3]' 2>/dev/null)
+	if [ -e ${LOCALBASE}/lib/${PYTHON_VERSION}/site-packages/_tkinter.so ]; then
+		exec ${LOCALBASE}/libexec/fetchmailconf.py "$@"
+	fi
+fi
+cat <<EOF
+The fetchmailconf program requires Python with Tkinter, which does
+not appear to be installed on this system.  Python can be found in
+the FreeBSD Ports Collection in lang/python, and Tkinter for Python
+can be found in x11-toolkits/py-tkinter.
+EOF
+exit 1

Modified: head/mail/fetchmail/pkg-plist
==============================================================================
--- head/mail/fetchmail/pkg-plist	Thu Jan 10 00:27:02 2013	(r310166)
+++ head/mail/fetchmail/pkg-plist	Thu Jan 10 01:36:21 2013	(r310167)
@@ -1,19 +1,7 @@
 @comment $FreeBSD$
 bin/fetchmail
 bin/fetchmailconf
-libexec/fetchmailconf.py
-%%PORTDOCS%%%%DOCSDIR%%/FAQ
-%%PORTDOCS%%%%DOCSDIR%%/FEATURES
-%%PORTDOCS%%%%DOCSDIR%%/NEWS
-%%PORTDOCS%%%%DOCSDIR%%/NOTES
-%%PORTDOCS%%%%DOCSDIR%%/README
-%%PORTDOCS%%%%NTLMDOCS%%%%DOCSDIR%%/README.NTLM
-%%PORTDOCS%%%%DOCSDIR%%/README.SSL
-%%PORTDOCS%%%%DOCSDIR%%/design-notes.html
-%%PORTDOCS%%%%DOCSDIR%%/esrs-design-notes.html
-%%PORTDOCS%%%%DOCSDIR%%/fetchmail-FAQ.html
-%%PORTDOCS%%%%DOCSDIR%%/fetchmail-features.html
-%%PORTDOCS%%@dirrm %%DOCSDIR%%
+%%NOX11%%libexec/fetchmailconf.py
 %%NLS%%share/locale/ca/LC_MESSAGES/fetchmail.mo
 %%NLS%%share/locale/cs/LC_MESSAGES/fetchmail.mo
 %%NLS%%share/locale/da/LC_MESSAGES/fetchmail.mo
@@ -37,9 +25,13 @@ libexec/fetchmailconf.py
 %%NLS%%share/locale/tr/LC_MESSAGES/fetchmail.mo
 %%NLS%%share/locale/vi/LC_MESSAGES/fetchmail.mo
 %%NLS%%share/locale/zh_CN/LC_MESSAGES/fetchmail.mo
+%%X11%%%%PYTHON_SITELIBDIR%%/fetchmailconf.py
+%%X11%%%%PYTHON_SITELIBDIR%%/fetchmailconf.pyc
+%%X11%%%%PYTHON_SITELIBDIR%%/fetchmailconf.pyo
 @exec /usr/bin/install -d -m 755 -o fetchmail -g fetchmail /var/run/fetchmail
 @unexec if cmp -s %D/etc/fetchmailrc.sample %D/etc/fetchmailrc; then rm -f %D/etc/fetchmailrc; fi
 etc/fetchmailrc.sample
 @exec if [ ! -f %D/etc/fetchmailrc ] ; then cp -p %D/%F %B/fetchmailrc; fi
-@unexec rm -f /var/run/fetchmail/fetchmail.pid 2>/dev/null || true
-@unexec rmdir /var/run/fetchmail 2>/dev/null || true
+@cwd /var/run
+@unexec rm -f %D/fetchmail/fetchmail.pid 2>/dev/null || true
+@dirrmtry fetchmail
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Comment 11 Matthias Andree freebsd_committer freebsd_triage 2013-01-10 01:36:38 UTC
State Changed
From-To: feedback->closed

Committed. Thanks!