pkgsrc/mail/imap-uw/Makefile

187 lines
5.8 KiB
Makefile
Raw Normal View History

# $NetBSD: Makefile,v 1.89 2005/01/31 11:38:22 abs Exp $
# ATTENTION:
# The Kerberos support in this software is known to be problematic. If you
# upgrade this package you *must* test it on a system with Kerberos libraries
# but not running Kerberos before committing the changes.
DISTNAME= imap-2004c1
PKGNAME= imap-uw-2004c1
CATEGORIES= mail
MASTER_SITES= ftp://ftp.cac.washington.edu/imap/
EXTRACT_SUFX= .tar.Z
2003-11-03 23:43:37 +01:00
MAINTAINER= kim@tac.nyc.ny.us
HOMEPAGE= http://www.washington.edu/imap/
COMMENT= University of Washington's IMAP, POP2, and POP3 servers
2004-11-13 22:28:27 +01:00
USE_BUILDLINK3= yes
2002-08-28 10:45:41 +02:00
USE_LIBTOOL= # defined
Update imap-uw to 4.7c2. The most notable user-visible change is the ability of the ipopd daemon to forward requests to the imapd daemon, thus allowing POP2 and POP3 mail clients to check IMAP mail. Most notable operational changes from earlier versions: . New, faster mailbox update logic is now available for the unix driver on UNIX and Amiga. The old way is still being done for MMDF and the unixnt driver on NT. . External file locking is now available via a setgid mail program named /etc/mlock (this is defined by LOCKPGM in the c-client Makefile). If c-client is unable to create a <mailbox>.lock file in the directory by itself, it will try to call mlock to do it. A sample mlock program is part of the imap-utils. This is primarily for the benefit of those paranoid souls who have their mail spool directories protected 775 instead of the recommended 1777. . SASL authentication is supported in the IMAP and POP3 servers, and in the IMAP, POP3, and SMTP client code. There is no support for NNTP SASL yet . CRAM-MD5 is supported by default for IMAP and POP3 clients. To enable server support, read file imap-4.7/docs/md5.txt . The mbox driver is now enabled by default. If the file "mbox" exists on the user's home directory and is in UNIX mailbox format, then when INBOX is opened this file will be selected as INBOX instead of the mail spool file. Messages will be automatically transferred from the mail spool file into the mbox file To disable this behavior, delete "mbox" from the EXTRADRIVERS list in the top-level Makefile and rebuild . IMAP4rev1 protocol is now supported. The UNIX format support now maintains unique identifiers (UIDs) and keyword flags for each message, and keeps an invisible message at the start of the file which contains the UID base information and a list of assigned keywords. There is no way to disable this behavior, since it would disable IMAP4rev1 support. This message may show up if you access the mailbox as a file using older mail software (e.g. Pine 3.9x). It is invisible with IMAP or POP access, or with access as a file using Pine 4.0x. . Support for additional mailbox formats . No longer keeps entire mailbox in memory for UNIX format files . Multilingual searching of the following charsets are supported: US-ASCII, UTF-8, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-10, ISO-8859-11, ISO-8859-13, ISO-8859-14, ISO-8859-15, KOI8-R, KOI8-U (alias KOI8-RU), TIS-620, VISCII, ISO-2022-JP, ISO-2022-KR, ISO-2022-CN, ISO-2022-JP-1, ISO-2022-JP-2, GB2312 (alias CN-GB), CN-GB-12345, BIG5 (alias CN-BIG5), EUC-JP, EUC-KR, Shift_JIS All ISO-2022-?? charsets are treated identically, and support ASCII, JIS Roman, hankaku katakana, ISO-8859-[1 - 10], TIS, GB 2312, JIS X 0208, JIS X 0212, KSC 5601, and planes 1 and 2 of CNS 11643. EUC-JP includes support for JIS X 0212 and hankaku katakana . Fast sorting including IMAP server-based sort . Fast ordered-subject threading including IMAP server-based threading
2000-05-19 05:58:55 +02:00
INST_PROG= ${LIBTOOL} ${INSTALL_PROGRAM}
INST_LIB= ${LIBTOOL} ${INSTALL_DATA}
INC_DIR= ${PREFIX}/include/c-client
LIB_DIR= ${PREFIX}/lib
Update imap-uw to 4.7c2. The most notable user-visible change is the ability of the ipopd daemon to forward requests to the imapd daemon, thus allowing POP2 and POP3 mail clients to check IMAP mail. Most notable operational changes from earlier versions: . New, faster mailbox update logic is now available for the unix driver on UNIX and Amiga. The old way is still being done for MMDF and the unixnt driver on NT. . External file locking is now available via a setgid mail program named /etc/mlock (this is defined by LOCKPGM in the c-client Makefile). If c-client is unable to create a <mailbox>.lock file in the directory by itself, it will try to call mlock to do it. A sample mlock program is part of the imap-utils. This is primarily for the benefit of those paranoid souls who have their mail spool directories protected 775 instead of the recommended 1777. . SASL authentication is supported in the IMAP and POP3 servers, and in the IMAP, POP3, and SMTP client code. There is no support for NNTP SASL yet . CRAM-MD5 is supported by default for IMAP and POP3 clients. To enable server support, read file imap-4.7/docs/md5.txt . The mbox driver is now enabled by default. If the file "mbox" exists on the user's home directory and is in UNIX mailbox format, then when INBOX is opened this file will be selected as INBOX instead of the mail spool file. Messages will be automatically transferred from the mail spool file into the mbox file To disable this behavior, delete "mbox" from the EXTRADRIVERS list in the top-level Makefile and rebuild . IMAP4rev1 protocol is now supported. The UNIX format support now maintains unique identifiers (UIDs) and keyword flags for each message, and keeps an invisible message at the start of the file which contains the UID base information and a list of assigned keywords. There is no way to disable this behavior, since it would disable IMAP4rev1 support. This message may show up if you access the mailbox as a file using older mail software (e.g. Pine 3.9x). It is invisible with IMAP or POP access, or with access as a file using Pine 4.0x. . Support for additional mailbox formats . No longer keeps entire mailbox in memory for UNIX format files . Multilingual searching of the following charsets are supported: US-ASCII, UTF-8, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-10, ISO-8859-11, ISO-8859-13, ISO-8859-14, ISO-8859-15, KOI8-R, KOI8-U (alias KOI8-RU), TIS-620, VISCII, ISO-2022-JP, ISO-2022-KR, ISO-2022-CN, ISO-2022-JP-1, ISO-2022-JP-2, GB2312 (alias CN-GB), CN-GB-12345, BIG5 (alias CN-BIG5), EUC-JP, EUC-KR, Shift_JIS All ISO-2022-?? charsets are treated identically, and support ASCII, JIS Roman, hankaku katakana, ISO-8859-[1 - 10], TIS, GB 2312, JIS X 0208, JIS X 0212, KSC 5601, and planes 1 and 2 of CNS 11643. EUC-JP includes support for JIS X 0212 and hankaku katakana . Fast sorting including IMAP server-based sort . Fast ordered-subject threading including IMAP server-based threading
2000-05-19 05:58:55 +02:00
DOC_DIR= ${PREFIX}/share/doc/imap-uw
.include "../../mk/bsd.prefs.mk"
.if ${OPSYS} == "SunOS"
BUILD_TARGET= gso
2002-06-21 16:13:36 +02:00
.elif ${OPSYS} == "Linux"
BUILD_TARGET= slx
2002-07-28 07:38:46 +02:00
.elif ${OPSYS} == "Darwin"
BUILD_TARGET= osx
.elif ${OPSYS} == "IRIX"
. if ${OS_VERSION} >= 6.5
BUILD_TARGET= sg6
. else
BUILD_TARGET= sgi
. endif
.else
BUILD_TARGET= neb
. if defined(USE_KERBEROS) && ${USE_KERBEROS} != "no"
2003-06-08 22:14:28 +02:00
PKG_USE_KERBEROS= # defined
BUILD_TARGET+= EXTRAAUTHENTICATORS="gss"
. if !empty(MACHINE_PLATFORM:MNetBSD-1.5*)
# NetBSD-1.5 didn't have "des_new_random_key" in libcrypto
MAKE_ENV+= GSS_EXTRA_LDFLAGS="-ldes"
. endif
. endif
.endif
BUILD_DEFS+= IMAP_UW_CCLIENT_MBOX_FMT IMAP_UW_NO_CLEARTEXT IMAP_UW_USE_WHOSON
CCLIENT_INCS= c-client.h env.h env_unix.h flocksim.h flstring.h \
fs.h ftl.h imap4r1.h linkage.c linkage.h mail.h misc.h \
Changes 2004: * mailutil has three new commands: delete, rename, and prune * IPv6 support now exists for UNIX and W2K * The NNTP driver now supports NNTP SASL and TLS * imapd now supports the LITERAL+ and SASL-IR initial-response extensions * The IMAP driver has some additional checks to reduce the amount of network traffic, including executing "silly searches" (searches of sequence numbers only) locally * The IMAP, POP, SMTP, and NNTP drivers now have diagnostic code to provide better information about servers which violate SASL's empty challenge requirements (e.g. with the PLAIN mechanism). * There is a new mail_fetch_overview_sequence() function which is like mail_fetch_overview() but takes a sequence number string as an argument. There should have been a flags argument and FT_UID bit as in all the other mail_fetch_???() functions but compatibility with the past... :-( * The overview_t callback (from mail_fetch_overview()) now has a fourth argument which contains the message sequence number (as opposed to the UID which is in the second argument). It turned out that some applications were calling mail_msgno() (which can be moderately expensive) to get the sequence number, and c-client already knew it. * Many declarations which are completely internal to a driver have been removed from the driver .h file, and in those cases where there are no external declarations left the .h file has been eliminated entirely. As part of this, the mbox driver routines are now incorporated with the unix driver routines as opposed to being a separate file. The mbox driver still needs to be lunk in order to get the mbox functionality.
2004-05-13 20:14:34 +02:00
netmsg.h newsrc.h nl.h nntp.h osdep.h rfc822.h \
smtp.h tcp.h utf8.h
CCLIENT_LIB= libc-client.la
CCLIENT_PICLIB= libc-client_pic.a
CCLIENT_MAJOR= 4
CCLIENT_MINOR= 1
CCLIENT_MFILES= src/imapd/Makefile \
src/ipopd/Makefile \
src/mtest/Makefile \
src/osdep/unix/Makefile
MESSAGE_SUBST+= SSLCERTS="${SSLCERTS}"
PLIST_SUBST+= CCLIENT_MAJOR="${CCLIENT_MAJOR}"
PLIST_SUBST+= CCLIENT_MINOR="${CCLIENT_MINOR}"
MANFILES= src/imapd/imapd.8 src/ipopd/ipopd.8
MAKE_ENV+= SSLDIR=${SSLBASE:Q}
MAKE_ENV+= SSLCERTS=${SSLCERTS:Q}
MAKE_ENV+= CCLIENT_MAJOR=${CCLIENT_MAJOR:Q}
MAKE_ENV+= CCLIENT_MINOR=${CCLIENT_MINOR:Q}
MAKE_ENV+= CREATEPROTO=${IMAP_UW_CCLIENT_MBOX_FMT:Q}proto
BUILD_TARGET+= CC="${LIBTOOL} ${CC}"
.if defined(IMAP_UW_USE_WHOSON) && ${IMAP_UW_USE_WHOSON} == "YES"
BUILD_TARGET+= EXTRALDFLAGS="${LDFLAGS} -lwhoson"
BUILD_TARGET+= EXTRACFLAGS="${CFLAGS} -DUSE_WHOSON"
.else
BUILD_TARGET+= EXTRALDFLAGS="${LDFLAGS}"
BUILD_TARGET+= EXTRACFLAGS="${CFLAGS}"
.endif
.if defined(IMAP_UW_NO_CLEARTEXT) && ${IMAP_UW_NO_CLEARTEXT} == "YES"
BUILD_TARGET+= SSLTYPE="nopwd"
.elif !defined(IMAP_UW_NO_SSL) || ${IMAP_UW_NO_SSL} != "YES"
BUILD_TARGET+= SPECIALAUTHENTICATORS="ssl"
BUILD_TARGET+= SSLTYPE="unix"
.endif
# reduce optimization level on alpha to avoid compiler bugs
.if ${OPSYS} == "NetBSD"
2003-06-08 22:14:28 +02:00
. if ${MACHINE_ARCH} == "alpha"
CPPFLAGS:= ${CPPFLAGS:C/-O[0-9]*/-O/g}
CFLAGS:= ${CFLAGS:C/-O[0-9]*/-O/g}
CONFIGURE_ENV+= CPPFLAGS="${CPPFLAGS}"
CONFIGURE_ENV+= CFLAGS="${CFLAGS}"
. endif
.endif
post-extract:
#
# Change references to the built library to ${CCLIENT_LIB}.
#
cd ${WRKSRC}; for file in ${CCLIENT_MFILES}; do \
${MV} -f $${file} $${file}.orig; \
${SED} -e "s|c-client.a|${CCLIENT_LIB}|g" \
$${file}.orig > $${file}; \
${RM} -f $${file}.orig; \
done
#
# Correct hardcoded paths in man pages.
#
cd ${WRKSRC}; for FILE in ${MANFILES}; do \
${CP} $${FILE} $${FILE}.broken; \
${SED} -e "s|/usr/etc/imapd|${PREFIX}/libexec/imapd|g" \
-e "s|/etc/rimapd|${PREFIX}/sbin/rimapd|g" \
-e "s|/usr/etc/ipop2d|${PREFIX}/libexec/ipop2d|g" \
-e "s|/usr/etc/ipop3d|${PREFIX}/libexec/ipop3d|g" \
$${FILE}.broken > $${FILE}; \
done
BUILD_DEFS+= IMAP_UW_MAILSPOOLHOME
post-patch:
.if defined(IMAP_UW_MAILSPOOLHOME)
cd ${WRKSRC}/src/osdep/unix && \
${SED} -e 's|@SPOOLDIR@|myhomedir ()|' \
-e 's|@MAILBOX@|"${IMAP_UW_MAILSPOOLHOME}"|' \
env_unix.c > env_unix.c.new && \
${MV} -f env_unix.c.new env_unix.c
.else
cd ${WRKSRC}/src/osdep/unix && \
${SED} -e 's|@SPOOLDIR@|MAILSPOOL|' \
-e 's|@MAILBOX@|myusername ()|' \
env_unix.c > env_unix.c.new && \
${MV} -f env_unix.c.new env_unix.c
.endif
# Generate _pic.a library from shared objects.
#
post-build:
2002-08-28 10:45:41 +02:00
cd ${WRKSRC}/c-client; \
${LIBTOOL} ${CC} -o ${CCLIENT_PICLIB:.a=.la} *.lo
do-install:
${INSTALL_DATA_DIR} ${INC_DIR}
cd ${WRKSRC}/c-client; ${INSTALL_DATA} ${CCLIENT_INCS} ${INC_DIR}
${INST_LIB} ${WRKSRC}/c-client/${CCLIENT_LIB} ${LIB_DIR}
${INSTALL_DATA} ${WRKSRC}/c-client/.libs/${CCLIENT_PICLIB} ${LIB_DIR}
${RANLIB} ${LIB_DIR}/${CCLIENT_PICLIB}
cd ${LIB_DIR}; for file in libc-client.*; do \
case $$file in \
*.la) ;; \
*) \
f=`${ECHO} $${file} | ${SED} "s|libc-client|libimapuw|g"`; \
${TEST} -f $${file} && ${LN} -f $${file} $${f}; \
;; \
esac; \
done
${INST_PROG} ${WRKSRC}/imapd/imapd ${PREFIX}/libexec
${INST_PROG} ${WRKSRC}/ipopd/ipop2d ${PREFIX}/libexec
${INST_PROG} ${WRKSRC}/ipopd/ipop3d ${PREFIX}/libexec
${INST_PROG} ${WRKSRC}/mtest/mtest ${PREFIX}/sbin
${LN} -sf ../libexec/imapd ${PREFIX}/sbin/rimapd
${INSTALL_MAN} ${WRKSRC}/src/imapd/imapd.8 ${PREFIX}/man/man8
${INSTALL_MAN} ${WRKSRC}/src/ipopd/ipopd.8 ${PREFIX}/man/man8
${LN} -sf ipopd.8 ${PREFIX}/man/man8/ipop2d.8
${LN} -sf ipopd.8 ${PREFIX}/man/man8/ipop3d.8
2002-10-30 13:00:49 +01:00
${INSTALL_DATA_DIR} ${DOC_DIR}
${CP} -R ${WRKSRC}/docs/* ${DOC_DIR}
${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${DOC_DIR}
${FIND} ${DOC_DIR} -type d -print | ${XARGS} ${CHMOD} ${PKGDIRMODE}
${FIND} ${DOC_DIR} -type f -print | ${XARGS} ${CHMOD} ${SHAREMODE}
.if !defined(IMAP_UW_NO_SSL) || ${IMAP_UW_NO_SSL} != "YES"
2004-04-22 23:31:22 +02:00
.include "../../security/openssl/buildlink3.mk"
.endif
.if defined(IMAP_UW_USE_WHOSON) && ${IMAP_UW_USE_WHOSON} == "YES"
.include "../../net/whoson/buildlink3.mk"
.endif
.include "../../mk/bsd.pkg.mk"