Changeset View
Standalone View
mail/mailutils/Makefile
# Created by: Attila Nagy <bra@fsn.hu> | # Created by: Attila Nagy <bra@fsn.hu> | ||||
# $FreeBSD$ | # $FreeBSD$ | ||||
PORTNAME= mailutils | PORTNAME= mailutils | ||||
PORTVERSION= 3.7 | PORTVERSION= 3.8 | ||||
PORTREVISION= 2 | |||||
CATEGORIES= mail | CATEGORIES= mail | ||||
MASTER_SITES= GNU GNU_ALPHA | MASTER_SITES= GNU GNU_ALPHA | ||||
EXTRA_PATCHES= ${FILESDIR}/git-018df5d:-p1 \ | |||||
${FILESDIR}/git-113e144:-p1 | |||||
MAINTAINER= zeus@gnu.org.ua | MAINTAINER= zeus@gnu.org.ua | ||||
COMMENT= Utilities, daemons, and filters for processing e-mail | COMMENT= Utilities, daemons, and filters for processing e-mail | ||||
LICENSE= GPLv3+ | LICENSE= GPLv3+ | ||||
LIB_DEPENDS= libltdl.so:devel/libltdl | LIB_DEPENDS= libgc-threaded.so:devel/boehm-gc-threaded \ | ||||
libltdl.so:devel/libltdl \ | |||||
libunistring.so:devel/libunistring | |||||
USES= gmake iconv libtool localbase readline tar:xz | USES= gmake iconv libtool localbase readline tar:xz | ||||
GNU_CONFIGURE= yes | GNU_CONFIGURE= yes | ||||
USE_LDCONFIG= yes | USE_LDCONFIG= yes | ||||
USE_RC_SUBR= comsatd imap4d pop3d | USE_RC_SUBR= comsatd imap4d pop3d | ||||
INSTALL_TARGET= install-strip | INSTALL_TARGET= install-strip | ||||
PLIST_SUB+= LIBVERSION=6.0.0 LIBSUFX=6 VERSION=${PORTVERSION} | PLIST_SUB+= LIBVERSION=6.0.0 LIBSUFX=6 VERSION=${PORTVERSION} | ||||
INFO= ${PORTNAME} | INFO= ${PORTNAME} | ||||
PORTDOCS= AUTHORS ChangeLog NEWS README* THANKS TODO | PORTDOCS= AUTHORS ChangeLog NEWS README* THANKS TODO | ||||
OPTIONS_DEFINE= DEBUG DOCS EMACS GNUTLS GSSAPI GUILE MH NNTP NLS \ | OPTIONS_DEFINE= DEBUG DOCS GNUTLS GSSAPI GUILE MH NNTP NLS PAM PYTHON | ||||
PAM PYTHON | |||||
OPTIONS_DEFAULT= GDBM GNUTLS PAM | OPTIONS_DEFAULT= GDBM GNUTLS PAM | ||||
OPTIONS_MULTI= DB | OPTIONS_MULTI= DB | ||||
OPTIONS_MULTI_DB= BDB GDBM KYOTOCABINET LDAP MYSQL PGSQL TOKYOCABINET | OPTIONS_MULTI_DB= BDB GDBM KYOTOCABINET LDAP MYSQL PGSQL TOKYOCABINET | ||||
OPTIONS_SUB= yes | OPTIONS_SUB= yes | ||||
DB_DESC= Database configuration | DB_DESC= Database configuration | ||||
EMACS_DESC= Emacs interface to MH (implies MH) | |||||
KYOTOCABINET_DESC= Kyoto Cabinet database support | KYOTOCABINET_DESC= Kyoto Cabinet database support | ||||
MH_DESC= MH (Message Handling) system support | MH_DESC= MH (Message Handling) system support | ||||
TOKYOCABINET_DESC= Tokyo Cabinet database support | TOKYOCABINET_DESC= Tokyo Cabinet database support | ||||
DEBUG_CONFIGURE_ON= --enable-debug | DEBUG_CONFIGURE_ON= --enable-debug | ||||
EMACS_USES= emacs:build | |||||
EMACS_IMPLIES= MH | |||||
GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls | GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls | ||||
rfyu28uyeg_snkmail.com: First of all, I think EMACS_USES=emacs:noflavors with EMACS_NO_DEPENDS=yes could just be… | |||||
Done Inline ActionsThe EMACS_USES=emacs:noflavors and EMACS_NO_DEPENDS=yes is there for EMACS_SITE_LISPDIR. Removing the build dependency on Emacs was intentional. It fixes the the circular dependency with the Emacs ports and mail/mailutils depending on each other. There is no plist error now, because pkg-plist has been updated. @danfe added the Emacs option, so I will remove it and always install the elisp file if he agrees. jrm: The `EMACS_USES=emacs:noflavors` and `EMACS_NO_DEPENDS=yes` is there for `EMACS_SITE_LISPDIR`. | |||||
Done Inline ActionsGot it now (about getting EMACS_SITE_LISPDIR). The .elc might still be installed if emacs is installed (and thus detected) at configure / build time. To solve that, either rm -f the .elc or pass in: MH_CONFIGURE_ARGS= ac_cv_prog_EMACS=no (I'm assuming here that we're getting rid of the now nearly pointless EMACS option and using MH_* instead of EMACS_*. But if for some reason, @danfe wants to keep EMACS, use 'EMACS_CONFIGURE_ARGS= ac_cv_prog_EMACS=no' instead). rfyu28uyeg_snkmail.com: Got it now (about getting EMACS_SITE_LISPDIR).
The .elc might still be installed if emacs is… | |||||
Done Inline ActionsGood call with Emacs auto-detection. I forget that some are so barbarous :P to build packages in a live environment and not in a clean jail that poudriere provides. As for the Emacs option, we may be underestimating the disdain some have for the editor of the gods. "I don't want this 1 KB Emacs lisp file polluting my system." jrm: Good call with Emacs auto-detection. I forget that some are so barbarous :P to build packages… | |||||
Not Done Inline ActionsI'm all for removing the option if it does not pull any dependencies; 1KB files should be installed unconditionally. In general, less options => better. :-) It was only introduced initially because I've assumed that Emacs is needed for some reason, but since I'm not an expert on those things, I might have easily guessed wrong. danfe: I'm all for removing the option if it does not pull any dependencies; 1KB files should be… | |||||
GNUTLS_CONFIGURE_WITH= gnutls | GNUTLS_CONFIGURE_WITH= gnutls | ||||
GSSAPI_RUN_DEPENDS= cyrus-sasl-gssapi>0:security/cyrus-sasl2-gssapi | GSSAPI_RUN_DEPENDS= cyrus-sasl-gssapi>0:security/cyrus-sasl2-gssapi | ||||
GSSAPI_USES= ssl | |||||
GSSAPI_CONFIGURE_WITH= gssapi | GSSAPI_CONFIGURE_WITH= gssapi | ||||
GUILE_LIB_DEPENDS= libguile-2.2.so:lang/guile2 libgmp.so:math/gmp | GUILE_LIB_DEPENDS= libguile-2.2.so:lang/guile2 libgmp.so:math/gmp | ||||
GUILE_USES= makeinfo pkgconfig | GUILE_USES= makeinfo pkgconfig | ||||
GUILE_CONFIGURE_WITH= guile | GUILE_CONFIGURE_WITH= guile | ||||
MH_CONFIGURE_ARGS= ac_cv_prog_EMACS=no | |||||
danfeUnsubmitted Not Done Inline ActionsTypically, ac_cv_* bits are passed via CONFIGURE_ENV (ARGS also work, but ENV is probably more correct and what is used in majority of other ports). danfe: Typically, `ac_cv_*` bits are passed via `CONFIGURE_ENV` (`ARGS` also work, but `ENV` is… | |||||
MH_CONFIGURE_ENABLE= mh | MH_CONFIGURE_ENABLE= mh | ||||
MH_USES= emacs:noflavors | |||||
MH_VARS= EMACS_NO_DEPENDS=yes | |||||
NNTP_CONFIGURE_ENABLE= nntp | NNTP_CONFIGURE_ENABLE= nntp | ||||
NLS_USES= gettext | NLS_USES= gettext | ||||
NLS_CONFIGURE_ENABLE= nls | NLS_CONFIGURE_ENABLE= nls | ||||
PAM_CONFIGURE_ENABLE= pam | PAM_CONFIGURE_ENABLE= pam | ||||
Show All 22 Lines | |||||
PGSQL_CONFIGURE_WITH= postgres | PGSQL_CONFIGURE_WITH= postgres | ||||
TOKYOCABINET_LIB_DEPENDS= libtokyocabinet.so:databases/tokyocabinet | TOKYOCABINET_LIB_DEPENDS= libtokyocabinet.so:databases/tokyocabinet | ||||
TOKYOCABINET_CONFIGURE_WITH= tokyocabinet | TOKYOCABINET_CONFIGURE_WITH= tokyocabinet | ||||
post-patch: | post-patch: | ||||
@${REINPLACE_CMD} -e '/need_charset_alias=/s|true|false|' \ | @${REINPLACE_CMD} -e '/need_charset_alias=/s|true|false|' \ | ||||
${WRKSRC}/lib/gnu/Makefile.in | ${WRKSRC}/lib/gnu/Makefile.in | ||||
@${REINPLACE_CMD} -e '/chown/,+1s|ch|#&|' \ | @${REINPLACE_CMD} -e '/chown/,+1s|ch|#&|' ${WRKSRC}/dotlock/Makefile.in | ||||
${WRKSRC}/dotlock/Makefile.in \ | |||||
${WRKSRC}/maidag/Makefile.in | |||||
@${REINPLACE_CMD} -e 's,-E,& -P,' ${WRKSRC}/libmu_scm/Makefile.in | @${REINPLACE_CMD} -e 's,-E,& -P,' ${WRKSRC}/libmu_scm/Makefile.in | ||||
post-install-DOCS-on: | post-install-DOCS-on: | ||||
@${MKDIR} ${STAGEDIR}${DOCSDIR} | @${MKDIR} ${STAGEDIR}${DOCSDIR} | ||||
${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR} | ${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR} | ||||
post-install-MH-on: | |||||
@${MKDIR} ${STAGEDIR}${EMACS_SITE_LISPDIR} | |||||
${RLN} ${STAGEDIR}${DATADIR}/mh/mailutils-mh.el \ | |||||
${STAGEDIR}${PREFIX}/${EMACS_SITE_LISPDIR} | |||||
.include <bsd.port.mk> | .include <bsd.port.mk> |
First of all, I think EMACS_USES=emacs:noflavors with EMACS_NO_DEPENDS=yes could just be omitted (I may be missing a subtlety).
But even with EMACS_USES=emacs:noflavors and EMACS_NO_DEPENDS=yes, there's still no build dependency on emacs. So if no emacs is not installed at build time the .elc will not get built and 'check-plist' will fail with:
It would also fail with 'missing mailutils-mh.el' as well except for the do-install-EMACS-on.
Maybe it'd be best to just remove the EMACS_USES and EMACS_NO_DEPENDS, leave the do-install-EMACS-on to manually install the .el file. And then remove the .elc from the pkg-plist. Have a byte compiled version of the tiny mailutils-mh.el doesn't buy much anyway.
I think just manually installing the .el file is the way to go. In fact (maybe), why not just get rid of the EMACS option altogether and just always install the .el file if MH is on. Why bother over-optimizing OPTIONS for the sake of a small .el file? Just always install it with the MH option (and remove the .elc file in case it gets installed - just to make pkg-plist easy to manage) and be done. I guess that'd be my vote.