From owner-freebsd-ports-bugs@FreeBSD.ORG Tue Jun 24 04:10:14 2003 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 159DB37B401 for ; Tue, 24 Jun 2003 04:10:14 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id E017643FAF for ; Tue, 24 Jun 2003 04:10:12 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.9/8.12.9) with ESMTP id h5OBACUp036203 for ; Tue, 24 Jun 2003 04:10:12 -0700 (PDT) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.9/8.12.9/Submit) id h5OBACsm036202; Tue, 24 Jun 2003 04:10:12 -0700 (PDT) Resent-Date: Tue, 24 Jun 2003 04:10:12 -0700 (PDT) Resent-Message-Id: <200306241110.h5OBACsm036202@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Tim Hemel Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A94B037B401 for ; Tue, 24 Jun 2003 04:08:32 -0700 (PDT) Received: from kronkel.opimus.nl (bbned3-32-100.dsl.hccnet.nl [80.100.32.3]) by mx1.FreeBSD.org (Postfix) with ESMTP id 694B843F3F for ; Tue, 24 Jun 2003 04:08:31 -0700 (PDT) (envelope-from tim@kronkel.opimus.nl) Received: by kronkel.opimus.nl (Postfix, from userid 1000) id 9EA863FE; Tue, 24 Jun 2003 13:10:23 +0200 (CEST) Message-Id: <20030624111023.9EA863FE@kronkel.opimus.nl> Date: Tue, 24 Jun 2003 13:10:23 +0200 (CEST) From: Tim Hemel To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Subject: ports/53673: new port: mail/esmtp X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Tim Hemel List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jun 2003 11:10:14 -0000 >Number: 53673 >Category: ports >Synopsis: new port: mail/esmtp >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: Tue Jun 24 04:10:11 PDT 2003 >Closed-Date: >Last-Modified: >Originator: Tim Hemel >Release: FreeBSD 4.8-STABLE i386 >Organization: no organization >Environment: System: FreeBSD kronkel.opimus.nl 4.8-STABLE FreeBSD 4.8-STABLE #1: Mon May 26 16:26:29 GMT 2003 root@kronkel.opimus.nl:/usr/obj/usr/src/sys/KRONKEL i386 >Description: User configurable relay-only MTA with sendmail-compatible syntax >How-To-Repeat: >Fix: # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # esmtp # esmtp/Makefile # esmtp/pkg-plist # esmtp/distinfo # esmtp/files # esmtp/files/patch-aa # esmtp/files/patch-ab # esmtp/pkg-descr # echo c - esmtp mkdir -p esmtp > /dev/null 2>&1 echo x - esmtp/Makefile sed 's/^X//' >esmtp/Makefile << 'END-of-esmtp/Makefile' X# New ports collection makefile for: esmtp X# Date created: Jun 24 2003 X# Whom: tim@n2it.net X# X# $FreeBSD$ X XPORTNAME= esmtp XPORTVERSION= 0.3 XCATEGORIES= mail XMASTER_SITES= ${MASTER_SITE_SOURCEFORGE} XMASTER_SITE_SUBDIR= ${PORTNAME} X XMAINTAINER= tim@n2it.net XCOMMENT= User configurable relay-only MTA with sendmail-compatible syntax X XLIB_DEPENDS= esmtp.6:${PORTSDIR}/mail/libesmtp \ X gnugetopt.1:${PORTSDIR}/devel/libgnugetopt X XUSE_BZIP2= yes XUSE_GMAKE= yes XGNU_CONFIGURE=yes XUSE_AUTOCONF_VER=253 X XLDFLAGS += -L${LOCALBASE}/lib XCPPFLAGS += -I${LOCALBASE}/include XCONFIGURE_ENV += CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}" X XMAN1= esmtp.1 X Xpre-configure: X ${TOUCH} ${WRKSRC}/config.sub X ${TOUCH} ${WRKSRC}/config.guess X Xpost-install: X mkdir -p ${PREFIX}/share/doc/esmtp X ${INSTALL_DATA} ${WRKSRC}/sample.esmtprc ${PREFIX}/share/doc/esmtp X ${INSTALL_DATA} ${WRKSRC}/README.mutt ${PREFIX}/share/doc/esmtp X X.include END-of-esmtp/Makefile echo x - esmtp/pkg-plist sed 's/^X//' >esmtp/pkg-plist << 'END-of-esmtp/pkg-plist' Xbin/esmtp Xshare/doc/esmtp/sample.esmtprc Xshare/doc/esmtp/README.mutt X@dirrm share/doc/esmtp END-of-esmtp/pkg-plist echo x - esmtp/distinfo sed 's/^X//' >esmtp/distinfo << 'END-of-esmtp/distinfo' XMD5 (esmtp-0.3.tar.bz2) = 7b18dd14b8a9104b556478466a7f46f3 END-of-esmtp/distinfo echo c - esmtp/files mkdir -p esmtp/files > /dev/null 2>&1 echo x - esmtp/files/patch-aa sed 's/^X//' >esmtp/files/patch-aa << 'END-of-esmtp/files/patch-aa' X--- configure.ac.orig Tue Nov 5 12:19:57 2002 X+++ configure.ac Tue Jun 24 11:39:26 2003 X@@ -21,11 +21,15 @@ X X YFLAGS=-d X X+ACX_PTHREAD(LIBS="$LIBS $PTHREAD_LIBS $PTHREAD_CFLAGS", X+ AC_MSG_ERROR([*** No pthreads on this system])) X+ X dnl Check for libESMTP X AC_CHECK_LIB(esmtp, smtp_start_session, X- LIBS="$LIBS -lesmtp -lpthread", X- AC_MSG_ERROR([*** libESMTP library not found.]), X- -lpthread) X+ LIBS="$LIBS -lesmtp", X+ AC_MSG_ERROR([*** libESMTP library not found.])) X+ X+adl_FUNC_GETOPT_LONG X X AC_CONFIG_FILES([Makefile]) X AC_OUTPUT END-of-esmtp/files/patch-aa echo x - esmtp/files/patch-ab sed 's/^X//' >esmtp/files/patch-ab << 'END-of-esmtp/files/patch-ab' X--- aclocal.m4.orig Mon Feb 24 01:08:04 2003 X+++ aclocal.m4 Tue Jun 24 11:36:48 2003 X@@ -826,3 +826,213 @@ X LEX=${am_missing_run}flex X fi]) X X+ X+dnl Available from the GNU Autoconf Macro Archive at: X+dnl http://www.gnu.org/software/ac-archive/htmldoc/acx_pthread.html X+dnl X+AC_DEFUN([ACX_PTHREAD], [ X+AC_REQUIRE([AC_CANONICAL_HOST]) X+AC_LANG_SAVE X+AC_LANG_C X+acx_pthread_ok=no X+ X+# We used to check for pthread.h first, but this fails if pthread.h X+# requires special compiler flags (e.g. on True64 or Sequent). X+# It gets checked for in the link test anyway. X+ X+# First of all, check if the user has set any of the PTHREAD_LIBS, X+# etcetera environment variables, and if threads linking works using X+# them: X+if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then X+ save_CFLAGS="$CFLAGS" X+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS" X+ save_LIBS="$LIBS" X+ LIBS="$PTHREAD_LIBS $LIBS" X+ AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) X+ AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes) X+ AC_MSG_RESULT($acx_pthread_ok) X+ if test x"$acx_pthread_ok" = xno; then X+ PTHREAD_LIBS="" X+ PTHREAD_CFLAGS="" X+ fi X+ LIBS="$save_LIBS" X+ CFLAGS="$save_CFLAGS" X+fi X+ X+# We must check for the threads library under a number of different X+# names; the ordering is very important because some systems X+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the X+# libraries is broken (non-POSIX). X+ X+# Create a list of thread flags to try. Items starting with a "-" are X+# C compiler flags, and other items are library names, except for "none" X+# which indicates that we try without any flags at all. X+ X+acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt" X+ X+# The ordering *is* (sometimes) important. Some notes on the X+# individual items follow: X+ X+# pthreads: AIX (must check this before -lpthread) X+# none: in case threads are in libc; should be tried before -Kthread and X+# other compiler flags to prevent continual compiler warnings X+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) X+# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) X+# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) X+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) X+# -pthreads: Solaris/gcc X+# -mthreads: Mingw32/gcc, Lynx/gcc X+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it X+# doesn't hurt to check since this sometimes defines pthreads too; X+# also defines -D_REENTRANT) X+# pthread: Linux, etcetera X+# --thread-safe: KAI C++ X+ X+case "${host_cpu}-${host_os}" in X+ *solaris*) X+ X+ # On Solaris (at least, for some versions), libc contains stubbed X+ # (non-functional) versions of the pthreads routines, so link-based X+ # tests will erroneously succeed. (We need to link with -pthread or X+ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather X+ # a function called by this macro, so we could check for that, but X+ # who knows whether they'll stub that too in a future libc.) So, X+ # we'll just look for -pthreads and -lpthread first: X+ X+ acx_pthread_flags="-pthread -pthreads pthread -mt $acx_pthread_flags" X+ ;; X+esac X+ X+if test x"$acx_pthread_ok" = xno; then X+for flag in $acx_pthread_flags; do X+ X+ case $flag in X+ none) X+ AC_MSG_CHECKING([whether pthreads work without any flags]) X+ ;; X+ X+ -*) X+ AC_MSG_CHECKING([whether pthreads work with $flag]) X+ PTHREAD_CFLAGS="$flag" X+ ;; X+ X+ *) X+ AC_MSG_CHECKING([for the pthreads library -l$flag]) X+ PTHREAD_LIBS="-l$flag" X+ ;; X+ esac X+ X+ save_LIBS="$LIBS" X+ save_CFLAGS="$CFLAGS" X+ LIBS="$PTHREAD_LIBS $LIBS" X+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS" X+ X+ # Check for various functions. We must include pthread.h, X+ # since some functions may be macros. (On the Sequent, we X+ # need a special flag -Kthread to make this header compile.) X+ # We check for pthread_join because it is in -lpthread on IRIX X+ # while pthread_create is in libc. We check for pthread_attr_init X+ # due to DEC craziness with -lpthreads. We check for X+ # pthread_cleanup_push because it is one of the few pthread X+ # functions on Solaris that doesn't have a non-functional libc stub. X+ # We try pthread_create on general principles. X+ AC_TRY_LINK([#include ], X+ [pthread_t th; pthread_join(th, 0); X+ pthread_attr_init(0); pthread_cleanup_push(0, 0); X+ pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], X+ [acx_pthread_ok=yes]) X+ X+ LIBS="$save_LIBS" X+ CFLAGS="$save_CFLAGS" X+ X+ AC_MSG_RESULT($acx_pthread_ok) X+ if test "x$acx_pthread_ok" = xyes; then X+ break; X+ fi X+ X+ PTHREAD_LIBS="" X+ PTHREAD_CFLAGS="" X+done X+fi X+ X+# Various other checks: X+if test "x$acx_pthread_ok" = xyes; then X+ save_LIBS="$LIBS" X+ LIBS="$PTHREAD_LIBS $LIBS" X+ save_CFLAGS="$CFLAGS" X+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS" X+ X+ # Detect AIX lossage: threads are created detached by default X+ # and the JOINABLE attribute has a nonstandard name (UNDETACHED). X+ AC_MSG_CHECKING([for joinable pthread attribute]) X+ AC_TRY_LINK([#include ], X+ [int attr=PTHREAD_CREATE_JOINABLE;], X+ ok=PTHREAD_CREATE_JOINABLE, ok=unknown) X+ if test x"$ok" = xunknown; then X+ AC_TRY_LINK([#include ], X+ [int attr=PTHREAD_CREATE_UNDETACHED;], X+ ok=PTHREAD_CREATE_UNDETACHED, ok=unknown) X+ fi X+ if test x"$ok" != xPTHREAD_CREATE_JOINABLE; then X+ AC_DEFINE(PTHREAD_CREATE_JOINABLE, $ok, X+ [Define to the necessary symbol if this constant X+ uses a non-standard name on your system.]) X+ fi X+ AC_MSG_RESULT(${ok}) X+ if test x"$ok" = xunknown; then X+ AC_MSG_WARN([we do not know how to create joinable pthreads]) X+ fi X+ X+ AC_MSG_CHECKING([if more special flags are required for pthreads]) X+ flag=no X+ case "${host_cpu}-${host_os}" in X+ *-aix* | *-freebsd*) flag="-D_THREAD_SAFE";; X+ *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; X+ esac X+ AC_MSG_RESULT(${flag}) X+ if test "x$flag" != xno; then X+ PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" X+ fi X+ X+ LIBS="$save_LIBS" X+ CFLAGS="$save_CFLAGS" X+ X+ # More AIX lossage: must compile with cc_r X+ AC_CHECK_PROG(PTHREAD_CC, cc_r, cc_r, ${CC}) X+else X+ PTHREAD_CC="$CC" X+fi X+ X+AC_SUBST(PTHREAD_LIBS) X+AC_SUBST(PTHREAD_CFLAGS) X+AC_SUBST(PTHREAD_CC) X+ X+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: X+if test x"$acx_pthread_ok" = xyes; then X+ ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) X+ : X+else X+ acx_pthread_ok=no X+ $2 X+fi X+AC_LANG_RESTORE X+])dnl ACX_PTHREAD X+ X+ X+dnl Available from the GNU Autoconf Macro Archive at: X+dnl http://www.gnu.org/software/ac-archive/htmldoc/adl_func_getopt_long.html X+dnl X+AC_PREREQ(2.49) X+ X+AC_DEFUN([adl_FUNC_GETOPT_LONG], X+ [# clean out junk possibly left behind by a previous configuration X+ rm -f lib/getopt.h X+ # Check for getopt_long support X+ AC_CHECK_HEADERS([getopt.h]) X+ AC_CHECK_FUNCS([getopt_long],, X+ [# FreeBSD has a gnugetopt library for this X+ AC_CHECK_LIB([gnugetopt],[getopt_long],[AC_DEFINE([HAVE_GETOPT_LONG])], X+ [# use the GNU replacement X+ AC_LIBOBJ(getopt) X+ AC_LIBOBJ(getopt1) X+ AC_CONFIG_LINKS([lib/getopt.h:lib/gnugetopt.h])])])]) END-of-esmtp/files/patch-ab echo x - esmtp/pkg-descr sed 's/^X//' >esmtp/pkg-descr << 'END-of-esmtp/pkg-descr' XESMTP is a user configurable relay-only Mail Transfer Agent (MTA) with a Xsendmail-compatible syntax. It's based on libESMTP supporting the AUTH X(including the CRAM-MD5 and NTLM SASL mechanisms) and the StartTLS SMTP Xextensions. X XWWW: http://esmtp.sourceforge.net/ END-of-esmtp/pkg-descr exit >Release-Note: >Audit-Trail: >Unformatted: