Adding mail/panda-cclient and mail/panda-imap.

Since Mark Crispin left the UW, development on UW-IMAP paused. Mark
however continued developing the toolkit under the name Panda-IMAP.
Since Mark passed, Jonathan Abbey created a project on GitHub, by
concatenating all of the public releases of UW IMAP with the last
version of Panda IMAP.

Add conflict lines with the original ports.
This commit is contained in:
Thierry Thomas
2014-12-14 17:56:14 +00:00
parent b3ff4a92e1
commit 69d0a0a258
35 changed files with 1584 additions and 1 deletions

View File

@@ -422,6 +422,8 @@
SUBDIR += p5-WWW-Hotmail
SUBDIR += p5-ZConf-Mail
SUBDIR += p5-qpsmtpd
SUBDIR += panda-cclient
SUBDIR += panda-imap
SUBDIR += pantomime
SUBDIR += pathalias
SUBDIR += pear-Contact_Vcard_Build

View File

@@ -19,6 +19,8 @@ COMMENT= Mark Crispin's C-client mail access routines
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
CONFLICTS_INSTALL= panda-cclient-20*
OPTIONS_DEFINE= SSL SSL_AND_PLAINTEXT IPV6 MBX_DEFAULT
OPTIONS_DEFAULT= SSL
SSL_AND_PLAINTEXT_DESC= Allow plain text passwords and SSL

View File

@@ -18,7 +18,9 @@ COMMENT= University of Washington IMAP4rev1/POP2/POP3 mail servers
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
LIB_DEPENDS= libc-client4.so:${PORTSDIR}/mail/cclient
LIB_DEPENDS= libc-client4.so.9:${PORTSDIR}/mail/cclient
CONFLICTS_INSTALL= panda-imap-20*
DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}${PKGNAMESUFFIX}
SUB_FILES= pkg-message

115
mail/panda-cclient/Makefile Normal file
View File

@@ -0,0 +1,115 @@
# Created by: Kelly Yancey <kbyanc@FreeBSD.org>
# $FreeBSD$
PORTNAME= cclient
PORTVERSION= 20130621
CATEGORIES= mail devel ipv6
PKGNAMEPREFIX= panda-
DISTNAME= panda-imap-${PORTVERSION}
MAINTAINER= thierry@FreeBSD.org
COMMENT= Mark Crispin's C-client mail access routines forked from UW
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE
USE_GITHUB= yes
GH_ACCOUNT= jonabbey
GH_PROJECT= ${PORTNAME}
GH_TAGNAME= ${GH_COMMIT}
GH_COMMIT= 7905901
CONFLICTS_INSTALL= cclient-20*
OPTIONS_DEFINE= SSL SSL_AND_PLAINTEXT IPV6 MBX_DEFAULT
OPTIONS_DEFAULT= SSL
SSL_AND_PLAINTEXT_DESC= Allow plain text passwords and SSL
MBX_DEFAULT_DESC= Use MBX as default mailbox format
MAKE_JOBS_UNSAFE= yes
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MSSL}
USE_OPENSSL= yes
PKGMESSAGE= pkg-message-ssl
.endif
.include <bsd.port.pre.mk>
USE_LDCONFIG= yes
ALL_TARGET= bsf
.if ! ${PORT_OPTIONS:MSSL}
MAKE_ARGS+= SSLTYPE=none SSLDIR=${OPENSSLBASE}
.else
.if ${PORT_OPTIONS:MSSL_AND_PLAINTEXT}
MAKE_ARGS+= SSLTYPE=unix SSLDIR=${OPENSSLDIR}
.else
MAKE_ARGS+= SSLTYPE=unix.nopwd SSLDIR=${OPENSSLDIR}
.endif
.endif
WRKSRC= ${WRKDIR}/${GH_ACCOUNT}-${DISTNAME:C|${PORTVERSION}|${GH_COMMIT}|}
MAKE_ARGS+= EXTRACFLAGS="${CFLAGS}"
SHLIBBASE= c-client4
SHLIBMAJ= 10
SHLIBNAME= lib${SHLIBBASE}.so.${SHLIBMAJ}
MAKE_ENV+= SHLIBNAME=${SHLIBNAME} SHLIBBASE=${SHLIBBASE}
PLIST_SUB= SHLIBNAME=${SHLIBNAME} SHLIBBASE=${SHLIBBASE}
pre-configure:
.for file in Makefile src/osdep/unix/Makefile src/osdep/unix/Makefile.gss
${REINPLACE_CMD} -e "s|/usr/local|${PREFIX}|g" ${WRKSRC}/${file}
.endfor
${REINPLACE_CMD} -e "s:/etc/ssl/certs:${PREFIX}/certs:g; \
s:/etc/ssl/private:${PREFIX}/certs:g" ${WRKSRC}/Makefile
${REINPLACE_CMD} -e "s:/etc/c-client.cf:${PREFIX}/etc/c-client.cf:" \
${WRKSRC}/src/osdep/unix/env_unix.h
.if ${PORT_OPTIONS:MSSL}
${REINPLACE_CMD} -e " \
s:SSLINCLUDE=/usr/include/openssl SSLLIB=/usr/lib:SSLINCLUDE=${OPENSSLINC} SSLLIB=${OPENSSLLIB}: \
" ${WRKSRC}/Makefile
.endif
.if ${PORT_OPTIONS:MIPV6}
${REINPLACE_CMD} -e "s|^IP=4|IP=6|" ${WRKSRC}/Makefile \
${WRKSRC}/src/osdep/unix/Makefile
.endif
.if ${PORT_OPTIONS:MMBX_DEFAULT}
${REINPLACE_CMD} -e "s|^CREATEPROTO=unixproto|CREATEPROTO=mbxproto|" \
${WRKSRC}/src/osdep/unix/Makefile
.endif
post-configure:
@${ECHO_MSG} ">> The c-client shared library will be named ${SHLIBNAME}"
HEADERS= c-client.h dummy.h env.h env_unix.h fdstring.h flockcyg.h \
flocksim.h flstring.h fs.h ftl.h imap4r1.h linkage.c linkage.h \
mail.h misc.h netmsg.h newsrc.h nl.h nntp.h osdep.h pseudo.h \
rfc822.h smtp.h sslio.h tcp.h tcp_unix.h unix.h utf8.h \
utf8aux.h
PORTREV_H= ${WRKDIR}/portrevision.h
post-build:
@${ECHO_CMD} "#define CCLIENT_PORTVERSION \"${PORTVERSION}\"" >${PORTREV_H}
.if ${PORT_OPTIONS:MSSL}
@${ECHO_CMD} "#define CCLIENT_SSLENABLED \"yes\"" >>${PORTREV_H}
.else
@${ECHO_CMD} "#define CCLIENT_SSLENABLED \"no\"" >>${PORTREV_H}
.endif
do-install:
${MKDIR} ${STAGEDIR}${PREFIX}/include/c-client
.for f in ${HEADERS}
${INSTALL_DATA} ${WRKSRC}/c-client/${f} ${STAGEDIR}${PREFIX}/include/c-client
.endfor
${INSTALL_LIB} ${WRKSRC}/c-client/${SHLIBNAME} ${STAGEDIR}${PREFIX}/lib
${LN} -sf ${SHLIBNAME} ${STAGEDIR}${PREFIX}/lib/lib${SHLIBBASE}.so
${INSTALL_DATA} ${WRKSRC}/c-client/c-client.a \
${STAGEDIR}${PREFIX}/lib/lib${SHLIBBASE}.a
${INSTALL_DATA} ${WRKSRC}/c-client/CFLAGS ${STAGEDIR}${PREFIX}/include/c-client
${INSTALL_DATA} ${WRKSRC}/c-client/LDFLAGS ${STAGEDIR}${PREFIX}/include/c-client
${INSTALL_DATA} ${WRKSRC}/c-client/OSCFLAGS ${STAGEDIR}${PREFIX}/include/c-client
${INSTALL_DATA} ${PORTREV_H} ${STAGEDIR}${PREFIX}/include/c-client
.include <bsd.port.post.mk>

View File

@@ -0,0 +1,2 @@
SHA256 (panda-imap-20130621.tar.gz) = 75696352efb56ac1c652e8df4f54ea6c3160fd6aa2cf078f793fac06733bc5b1
SIZE (panda-imap-20130621.tar.gz) = 2065425

View File

@@ -0,0 +1,78 @@
*** Makefile.orig Wed May 9 00:50:45 2007
--- Makefile Mon Jul 23 16:02:26 2007
***************
*** 294,300 ****
# Make the IMAP Toolkit
! all: c-client SPECIALS rebuild bundled
c-client:
@echo Not processed yet. In a first-time build, you must specify
--- 294,300 ----
# Make the IMAP Toolkit
! all: c-client SPECIALS rebuild
c-client:
@echo Not processed yet. In a first-time build, you must specify
***************
*** 559,567 ****
@echo + In order to rectify this problem, you MUST build with:
@echo ++ SSLTYPE=$(SSLTYPE).nopwd
@echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- @echo
- @echo Do you want to continue this build anyway? Type y or n please:
- @$(SH) -c 'read x; case "$$x" in y) exit 0;; *) (make nounenc;exit 1);; esac'
nounenc:
@echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--- 559,564 ----
***************
*** 582,590 ****
@echo ++ SSLTYPE=nopwd
@echo + You must also have OpenSSL or equivalent installed.
@echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- @echo
- @echo Do you want to continue this build anyway? Type y or n please:
- @$(SH) -c 'read x; case "$$x" in y) exit 0;; *) (make nonossl;exit 1);; esac'
nonossl:
@echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--- 579,584 ----
***************
*** 659,665 ****
$(TOOLS)/$@ "$(LN)" src/tmail tmail
$(LN) $(TOOLS)/$@ .
! build: OSTYPE rebuild rebuildclean bundled
OSTYPE:
@$(MAKE) ip$(IP)
--- 653,659 ----
$(TOOLS)/$@ "$(LN)" src/tmail tmail
$(LN) $(TOOLS)/$@ .
! build: OSTYPE rebuild rebuildclean
OSTYPE:
@$(MAKE) ip$(IP)
***************
*** 679,686 ****
@$(SH) -c '(test $(BUILDTYPE) = rebuild -o $(BUILDTYPE) = `$(CAT) OSTYPE`) || (echo Already built for `$(CAT) OSTYPE` -- you must do \"make clean\" first && exit 1)'
@echo Rebuilding c-client for `$(CAT) OSTYPE`...
@$(TOUCH) SPECIALS
! $(CD) c-client;$(MAKE) all CC=`$(CAT) CCTYPE` \
! CFLAGS="`$(CAT) CFLAGS`" `$(CAT) SPECIALS`
rebuildclean:
$(SH) -c '$(RM) rebuild || true'
--- 673,679 ----
@$(SH) -c '(test $(BUILDTYPE) = rebuild -o $(BUILDTYPE) = `$(CAT) OSTYPE`) || (echo Already built for `$(CAT) OSTYPE` -- you must do \"make clean\" first && exit 1)'
@echo Rebuilding c-client for `$(CAT) OSTYPE`...
@$(TOUCH) SPECIALS
! $(CD) c-client;$(MAKE) all CFLAGS="`$(CAT) CFLAGS`" `$(CAT) SPECIALS`
rebuildclean:
$(SH) -c '$(RM) rebuild || true'

View File

@@ -0,0 +1,152 @@
--- src/osdep/unix/Makefile.orig 2013-06-21 23:29:17.000000000 +0200
+++ src/osdep/unix/Makefile 2014-12-01 22:35:23.000000000 +0100
@@ -30,9 +30,9 @@
EXTRAAUTHENTICATORS=
EXTRADRIVERS=mbox
-PASSWDTYPE=std
-SSLTYPE=nopwd
-IP=4
+PASSWDTYPE=pam
+SSLTYPE=unix.nopwd
+IP=6
# The optimization level here for GCC ports is set here for a reason. It's
@@ -56,13 +56,13 @@
# Extended flags needed for SSL. You may need to modify.
-SSLDIR=/usr/local/ssl
-SSLCERTS=$(SSLDIR)/certs
+#SSLDIR=/usr/local/ssl
+SSLCERTS=$(PREFIX)/certs
SSLKEYS=$(SSLCERTS)
SSLINCLUDE=$(SSLDIR)/include
SSLLIB=$(SSLDIR)/lib
-SSLCRYPTO=-lcrypto
+SSLCRYPTO=-lcrypto -lcrypt
# Older versions of MIT Kerberos also have a libcrypto. If so, you may need
# to use this instead
@@ -89,7 +89,7 @@
# AFSLDFLAGS may also need -L/usr/ucblib -lucb
DCECFLAGS= -DDCE_MINIMAL -DPASSWD_OVERRIDE=\"/opt/pop3/passwd/passwd\"
DCELDFLAGS= -ldce
-PAMLDFLAGS= -lpam -ldl
+PAMLDFLAGS= # -lpam -lcrypt
# Build parameters normally set by the individual port
@@ -132,7 +132,7 @@
# Commands possibly overriden by the individual port
ARRC=ar rc
-CC=cc
+#CC=cc
LN=ln -s
RANLIB=ranlib
@@ -156,7 +156,7 @@
dummy.o pseudo.o netmsg.o flstring.o fdstring.o \
rfc822.o nntp.o smtp.o imap4r1.o pop3.o \
unix.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o mix.o
-CFLAGS=-g
+CFLAGS+=$(BASECFLAGS) $(EXTRACFLAGS)
CAT=cat
MAKE=make
@@ -173,6 +173,10 @@
PASSWDTYPE=$(PASSWDTYPE) SSLTYPE=$(SSLTYPE) IP=$(IP)
+# Need this for the shared library rule to work correctly
+.SUFFIXES: .o .so
+SOFILES=${BINARIES:.o=.so}
+
# Here if no make argument established
missing: osdep.h
@@ -261,13 +265,14 @@
BASECFLAGS="-g -Dconst="
bsf: # FreeBSD
- $(BUILD) `$(CAT) SPECIALS` OS=$@ \
+ $(BUILD) `$(CAT) SPECIALS` OS=$@ CHECKPW=pam \
SIGTYPE=psx CRXTYPE=nfs \
SPOOLDIR=/var \
ACTIVEFILE=/usr/local/news/lib/active \
RSHPATH=/usr/bin/rsh \
+ LOCKPGM=$(PREFIX)/libexec/mlock \
BASECFLAGS="$(GCCCFLAGS)" \
- BASELDFLAGS="-lcrypt"
+ BASELDFLAGS="-lpam"
bsi: # BSD/i386
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
@@ -863,23 +868,31 @@
# Build it!
-build: clean once $(ARCHIVE)
+build: clean once $(ARCHIVE) $(SHLIBNAME)
-all: $(ARCHIVE)
+all: $(ARCHIVE) $(SHLIBNAME)
$(ARCHIVE): $(BINARIES)
sh -c '$(RM) $(ARCHIVE) || true'
@$(CAT) ./ARCHIVE
@$(SH) ./ARCHIVE
+$(SHLIBNAME): $(SOFILES)
+ $(CC) -shared -Wl,-soname=$(SHLIBNAME) -o $(SHLIBNAME) $(SOFILES) `cat LDFLAGS`
+ $(LN) $(SHLIBNAME) lib$(SHLIBBASE).so
+
+.c.so: osdep.h
+ $(CC) -fPIC -DPIC -c `cat CFLAGS` ${@:.so=.c} -o $@
+
.c.o:
- `$(CAT) CCTYPE` -c `$(CAT) CFLAGS` $*.c
+ $(CC) -c `cat CFLAGS` $*.c
# Cleanup
clean:
sh -c '$(RM) auths.c crexcl.c ip_unix.c linkage.[ch] siglocal.c osdep*.[ch] *.o ARCHIVE *FLAGS *TYPE $(ARCHIVE) || true'
+ sh -c '$(RM) *.so $(SHLIBNAME)'
# Dependencies
@@ -914,7 +927,7 @@
# OS-dependent
-osdep.o:mail.h misc.h env.h fs.h ftl.h nl.h tcp.h \
+OSDEPS= mail.h misc.h env.h fs.h ftl.h nl.h tcp.h \
osdep.h env_unix.h tcp_unix.h \
osdep.c env_unix.c fs_unix.c ftl_unix.c nl_unix.c tcp_unix.c ip_unix.c\
auths.c crexcl.c flockcyg.c flocklnx.c flocksim.c fsync.c \
@@ -928,12 +941,19 @@
write.c sslstdio.c \
strerror.c strpbrk.c strstr.c strtok.c strtoul.c \
OSCFLAGS
+
+osdep.o: $(OSDEPS)
+ $(CC) `$(CAT) CFLAGS` `$(CAT) OSCFLAGS` -c osdep.c
+ @echo ========================================================================
@echo Building OS-dependent module
@echo If you get No such file error messages for files x509.h, ssl.h,
@echo pem.h, buffer.h, bio.h, and crypto.h, that means that OpenSSL
@echo is not installed on your system. Either install OpenSSL first
@echo or build with command: make `$(CAT) OSTYPE` SSLTYPE=none
- `$(CAT) CCTYPE` -c `$(CAT) CFLAGS` `$(CAT) OSCFLAGS` -c osdep.c
+ @echo ========================================================================
+
+osdep.so: $(OSDEPS)
+ $(CC) -fPIC -DPIC -c `$(CAT) CFLAGS` `$(CAT) OSCFLAGS` osdep.c -o $@
osdep.c: osdepbas.c osdepckp.c osdeplog.c osdepssl.c
$(CAT) osdepbas.c osdepckp.c osdeplog.c osdepssl.c > osdep.c

View File

@@ -0,0 +1,21 @@
--- src/osdep/unix/os_bsi.h.orig Wed Apr 11 10:53:03 2001
+++ src/osdep/unix/os_bsi.h Wed Apr 11 10:55:32 2001
@@ -22,7 +22,18 @@
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
+
+/*
+ * FreeBSD v3.x and onward whines about <sys/dir.h> being obsolete, so switch
+ * to POSIX semantics.
+ */
+#if __FreeBSD__ >= 3
+#include <dirent.h>
+#define direct dirent
+#else
#include <sys/dir.h>
+#endif
+
#include <fcntl.h>
#include <syslog.h>
#include <sys/file.h>

View File

@@ -0,0 +1,9 @@
C-client is a common API for accessing mailboxes. It is used internally by
the popular PINE mail reader as well as the University of Washington's IMAP
server.
This is the version forked from UW by the original author Mark Crispin.
For more information, please see the UW IMAP homepage:
WWW: http://www.washington.edu/imap/

View File

@@ -0,0 +1,5 @@
================================================================================
Warning: You have chosen to include SSL support. Applications/ports that use
the cclient library but do not support SSL may stop working or have problems
linking. Linking them explicitly with ssl (-lssl -lcrypto) may or may not help.
================================================================================

View File

@@ -0,0 +1,36 @@
include/c-client/c-client.h
include/c-client/dummy.h
include/c-client/env.h
include/c-client/env_unix.h
include/c-client/fdstring.h
include/c-client/flockcyg.h
include/c-client/flocksim.h
include/c-client/flstring.h
include/c-client/fs.h
include/c-client/ftl.h
include/c-client/imap4r1.h
include/c-client/linkage.c
include/c-client/linkage.h
include/c-client/mail.h
include/c-client/misc.h
include/c-client/netmsg.h
include/c-client/newsrc.h
include/c-client/nl.h
include/c-client/nntp.h
include/c-client/osdep.h
include/c-client/pseudo.h
include/c-client/rfc822.h
include/c-client/smtp.h
include/c-client/sslio.h
include/c-client/tcp.h
include/c-client/tcp_unix.h
include/c-client/unix.h
include/c-client/utf8.h
include/c-client/utf8aux.h
include/c-client/portrevision.h
include/c-client/CFLAGS
include/c-client/LDFLAGS
include/c-client/OSCFLAGS
lib/%%SHLIBNAME%%
lib/libc-client4.a
lib/libc-client4.so

131
mail/panda-imap/Makefile Normal file
View File

@@ -0,0 +1,131 @@
# Created by: pst
# $FreeBSD$
PORTNAME= panda-imap
PORTVERSION= 20130621
CATEGORIES= mail ipv6
MAINTAINER= thierry@FreeBSD.org
COMMENT= IMAP4rev1/POP2/POP3 mail servers forked from imap-uw
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE
LIB_DEPENDS= libc-client4.so.10:${PORTSDIR}/mail/panda-cclient
USE_GITHUB= yes
GH_ACCOUNT= jonabbey
GH_PROJECT= ${PORTNAME}
GH_TAGNAME= ${GH_COMMIT}
GH_COMMIT= 7905901
CONFLICTS_INSTALL= imap-uw-20*
DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}${PKGNAMESUFFIX}
SUB_FILES= pkg-message
MAKE_JOBS_UNSAFE= yes
ALL_TARGET= bsf
# This port must have the same SSL settings as mail/cclient, which it depends on
# To make MBX format the default mailbox format, change the settings of cclient
OPTIONS_DEFINE= SSL SSL_AND_PLAINTEXT DRAC NETSCAPE_BRAIN_DAMAGE DOCS
OPTIONS_DEFAULT= SSL
SSL_DESC= Compile with SSL support
SSL_AND_PLAINTEXT_DESC= Allow plain text passwords and SSL
DRAC_DESC= Dynamically open MTA for relaying
NETSCAPE_BRAIN_DAMAGE_DESC= See Makefile for documentation
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MDRAC}
BUILD_DEPENDS+= ${LOCALBASE}/lib/libdrac.a:${PORTSDIR}/mail/drac
MAKE_ARGS+= WITH_DRAC=yes
.endif
.if ! ${PORT_OPTIONS:MSSL}
MAKE_ARGS+= SSLTYPE=none SSLDIR=${OPENSSLBASE}
.else
USE_OPENSSL= yes
.if ${PORT_OPTIONS:MSSL_AND_PLAINTEXT}
MAKE_ARGS+= SSLTYPE=unix
.else
MAKE_ARGS+= SSLTYPE=unix.nopwd
.endif
.endif
# Define this to get somewhat better interoperability with Netscape.
.if ${PORT_OPTIONS:MNETSCAPE_BRAIN_DAMAGE}
MAKE_ARGS+= WITH_NETSCAPE_BRAIN_DAMAGE=yes
.endif
# See src/imapd/Makefile for more information about these three options.
.include <bsd.port.pre.mk>
post-patch:
@${REINPLACE_CMD} -e "s:/etc/c-client.cf:${PREFIX}/etc/c-client.cf:" \
${WRKSRC}/docs/imaprc.txt
@${RM} ${WRKSRC}/docs/imaprc.txt.bak
pre-build:
@${SH} ${PKGREQ}.rev ${LOCALBASE}/include/c-client/portrevision.h ${PORTVERSION}
.if ${PORT_OPTIONS:MSSL}
@${SH} ${PKGREQ}.ssl ${LOCALBASE}/include/c-client/portrevision.h yes
.else
@${SH} ${PKGREQ}.ssl ${LOCALBASE}/include/c-client/portrevision.h no
.endif
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/imapd/imapd ${STAGEDIR}${PREFIX}/libexec/
${INSTALL_PROGRAM} ${WRKSRC}/ipopd/ipop2d ${STAGEDIR}${PREFIX}/libexec/
${INSTALL_PROGRAM} ${WRKSRC}/ipopd/ipop3d ${STAGEDIR}${PREFIX}/libexec/
${INSTALL} ${COPY} ${STRIP} \
${WRKSRC}/mlock/mlock ${STAGEDIR}${PREFIX}/libexec
${INSTALL_PROGRAM} ${WRKSRC}/mtest/mtest ${STAGEDIR}${PREFIX}/bin/mboxtest
${INSTALL_MAN} \
${WRKSRC}/src/imapd/imapd.8 ${STAGEDIR}${PREFIX}/man/man8/imapd.8
${INSTALL_MAN} \
${WRKSRC}/src/ipopd/ipopd.8 ${STAGEDIR}${PREFIX}/man/man8/ipopd.8
${INSTALL_PROGRAM} ${WRKSRC}/dmail/dmail ${STAGEDIR}${PREFIX}/bin/
${INSTALL_PROGRAM} ${WRKSRC}/mailutil/mailutil ${STAGEDIR}${PREFIX}/bin/
${INSTALL_PROGRAM} ${WRKSRC}/tmail/tmail ${STAGEDIR}${PREFIX}/bin/
${INSTALL_MAN} ${WRKSRC}/src/dmail/dmail.1 ${STAGEDIR}${PREFIX}/man/man1/
${INSTALL_MAN} ${WRKSRC}/src/mailutil/mailutil.1 ${STAGEDIR}${PREFIX}/man/man1/
${INSTALL_MAN} ${WRKSRC}/src/tmail/tmail.1 ${STAGEDIR}${PREFIX}/man/man1/
post-install:
@${CAT} ${PKGMESSAGE}
.if ${PORT_OPTIONS:MDRAC}
@${ECHO} "================================================================================"
@${ECHO} "To have DRAC working, you must create ${PREFIX}/etc/dracd.host, containing"
@${ECHO} "the hostname of the DRAC server:"
@${ECHO}
@${ECHO} "localhost"
@${ECHO} "================================================================================"
.endif
.if ${PORT_OPTIONS:MSSL}
@${ECHO}
@${ECHO} "To create and install a new SSL certificate for imapd and ipop3d, type \"make"
@${ECHO} "cert\". Or install manually in ${PREFIX}/certs."
@${ECHO}
@${ECHO} "Example inetd config for SSL only services:"
@${ECHO}
@${ECHO} "pop3s stream tcp nowait root ${PREFIX}/libexec/ipop3d ipop3d"
@${ECHO} "imaps stream tcp nowait root ${PREFIX}/libexec/imapd imapd"
@${ECHO} "================================================================================"
.endif
.if ${PORT_OPTIONS:MDOCS}
${MKDIR} -m 0755 -p ${STAGEDIR}${DOCSDIR}
${TAR} -C ${WRKSRC}/docs -cf - . | \
(umask 022; ${TAR} -C ${STAGEDIR}${DOCSDIR} -xf -)
.endif
cert:
${INSTALL} -d -o root -g wheel -m 0755 ${PREFIX}/certs
openssl req -new -x509 -days 365 -nodes -config ${FILESDIR}/imap-uw.cnf -out ${PREFIX}/certs/imapd.pem -keyout ${PREFIX}/certs/imapd.pem
openssl x509 -subject -dates -fingerprint -noout -in ${PREFIX}/certs/imapd.pem
${CHMOD} 700 ${PREFIX}/certs/imapd.pem
${LN} -s ${PREFIX}/certs/imapd.pem ${PREFIX}/certs/ipop3d.pem
.include <bsd.port.post.mk>

2
mail/panda-imap/distinfo Normal file
View File

@@ -0,0 +1,2 @@
SHA256 (panda-imap-20130621.tar.gz) = 75696352efb56ac1c652e8df4f54ea6c3160fd6aa2cf078f793fac06733bc5b1
SIZE (panda-imap-20130621.tar.gz) = 2065425

View File

@@ -0,0 +1,34 @@
HOME= .
RANDFILE = $ENV::HOME/.rnd
[ req ]
default_bits = 1024
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
[ req_dn ]
countryName = Country Name (2 letter code)
countryName_default = NO
countryName_min = 2
countryName_max = 2
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = Some-State
localityName = Locality Name (eg, city)
0.organizationName = Organization Name (eg, company)
0.organizationName_default = FooBar Inc.
organizationalUnitName = Organizational Unit Name (eg, section)
#organizationalUnitName_default =
0.commonName = Common Name (FQDN of your server)
1.commonName = Common Name (default)
1.commonName_value = localhost
[ cert_type ]
nsCertType = server

View File

@@ -0,0 +1,110 @@
*** Makefile.orig Wed May 9 00:50:45 2007
--- Makefile Mon Jul 23 17:45:00 2007
***************
*** 164,170 ****
# std system standard (typically passwd file), determined by port
# two try alternative (defined by CHECKPWALT), then std
! PASSWDTYPE=std
# SSL type. Defines whether or not SSL support is on this system
--- 164,170 ----
# std system standard (typically passwd file), determined by port
# two try alternative (defined by CHECKPWALT), then std
! PASSWDTYPE=pam
# SSL type. Defines whether or not SSL support is on this system
***************
*** 253,264 ****
# British. As of 2005, the Julian calendar and the Gregorian calendar
# diverge by 15 days.
! EXTRACFLAGS=
# Extra linker flags (additional/alternative libraries, etc.)
! EXTRALDFLAGS=
# Special make flags (e.g. to override make environment variables)
--- 253,264 ----
# British. As of 2005, the Julian calendar and the Gregorian calendar
# diverge by 15 days.
! EXTRACFLAGS=-I$(PREFIX)/include/c-client
# Extra linker flags (additional/alternative libraries, etc.)
! EXTRALDFLAGS=-L$(PREFIX)/lib -lc-client4
# Special make flags (e.g. to override make environment variables)
***************
*** 294,306 ****
# Make the IMAP Toolkit
! all: c-client SPECIALS rebuild bundled
!
! c-client:
! @echo Not processed yet. In a first-time build, you must specify
! @echo the system type so that the sources are properly processed.
! @false
!
SPECIALS:
echo $(SPECIALS) > SPECIALS
--- 294,300 ----
# Make the IMAP Toolkit
! all: bundled
SPECIALS:
echo $(SPECIALS) > SPECIALS
***************
*** 559,567 ****
@echo + In order to rectify this problem, you MUST build with:
@echo ++ SSLTYPE=$(SSLTYPE).nopwd
@echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- @echo
- @echo Do you want to continue this build anyway? Type y or n please:
- @$(SH) -c 'read x; case "$$x" in y) exit 0;; *) (make nounenc;exit 1);; esac'
nounenc:
@echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--- 553,558 ----
***************
*** 582,590 ****
@echo ++ SSLTYPE=nopwd
@echo + You must also have OpenSSL or equivalent installed.
@echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- @echo
- @echo Do you want to continue this build anyway? Type y or n please:
- @$(SH) -c 'read x; case "$$x" in y) exit 0;; *) (make nonossl;exit 1);; esac'
nonossl:
@echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--- 573,578 ----
***************
*** 659,665 ****
$(TOOLS)/$@ "$(LN)" src/tmail tmail
$(LN) $(TOOLS)/$@ .
! build: OSTYPE rebuild rebuildclean bundled
OSTYPE:
@$(MAKE) ip$(IP)
--- 647,653 ----
$(TOOLS)/$@ "$(LN)" src/tmail tmail
$(LN) $(TOOLS)/$@ .
! build: bundled
OSTYPE:
@$(MAKE) ip$(IP)

View File

@@ -0,0 +1,26 @@
--- src/dmail/Makefile.orig 2008-06-04 20:18:34.000000000 +0200
+++ src/dmail/Makefile 2009-01-16 10:28:52.000000000 +0100
@@ -31,20 +31,12 @@
# Get local definitions from c-client directory
-CC = `cat $C/CCTYPE`
-CFLAGS = -I$C `cat $C/CFLAGS`
-LDFLAGS = $(CCLIENTLIB) `cat $C/LDFLAGS`
+CFLAGS+= -DNFSKLUDGE -I$(LOCALBASE)/include/c-client
+LDFLAGS+= -L$(LOCALBASE)/lib -lc-client4
-dmail: $(CCLIENTLIB) dmail.o dquota.o
+dmail: dmail.o dquota.o
$(CC) $(CFLAGS) -o dmail dmail.o dquota.o $(LDFLAGS)
-dmail.o: $C/mail.h $C/misc.h $C/osdep.h dquota.h
-
-dquota.o: dquota.h
-
-$(CCLIENTLIB):
- cd $C;make
-
clean:
rm -f *.o dmail

View File

@@ -0,0 +1,12 @@
--- src/mlock/Makefile.orig Wed Nov 27 04:06:19 2002
+++ src/mlock/Makefile Wed Nov 27 04:09:37 2002
@@ -22,8 +22,7 @@
# Get local definitions from c-client directory
-CC = `cat $C/CCTYPE`
-CFLAGS = `cat $C/CFLAGS`
+CFLAGS+= -DNFSKLUDGE
all: mlock

View File

@@ -0,0 +1,11 @@
--- src/osdep/unix/env_unix.c.orig 2013-06-21 23:29:17.000000000 +0200
+++ src/osdep/unix/env_unix.c 2014-11-23 22:48:04.000000000 +0100
@@ -76,7 +76,7 @@
static short anonymous = NIL; /* is anonymous */
static short blackBox = NIL; /* is a black box */
static short closedBox = NIL; /* is a closed box (uses chroot() jail) */
-static long restrictBox = NIL; /* is a restricted box */
+static long restrictBox = -1; /* is a restricted box */
static short has_no_life = NIL; /* is a cretin with no life */
/* block environment init */
static short block_env_init = NIL;

View File

@@ -0,0 +1,26 @@
--- src/tmail/Makefile.orig 2008-06-04 20:18:34.000000000 +0200
+++ src/tmail/Makefile 2009-01-16 10:30:24.000000000 +0100
@@ -31,20 +31,12 @@
# Get local definitions from c-client directory
-CC = `cat $C/CCTYPE`
-CFLAGS = -I$C `cat $C/CFLAGS`
-LDFLAGS = $(CCLIENTLIB) `cat $C/LDFLAGS`
+CFLAGS+= -DNFSKLUDGE -I$(LOCALBASE)/include/c-client
+LDFLAGS+= -L$(LOCALBASE)/lib -lc-client4
-tmail: $(CCLIENTLIB) tmail.o tquota.o
+tmail: tmail.o tquota.o
$(CC) $(CFLAGS) -o tmail tmail.o tquota.o $(LDFLAGS)
-tmail.o: $C/mail.h $C/misc.h $C/osdep.h tquota.h
-
-tquota.o: tquota.h
-
-$(CCLIENTLIB):
- cd $C;make
-
clean:
rm -f *.o tmail

View File

@@ -0,0 +1,11 @@
--- src/imapd/imapd.8.orig Sun Sep 30 16:06:25 2007
+++ src/imapd/imapd.8 Sun Sep 30 16:06:38 2007
@@ -16,7 +16,7 @@
.SH NAME
IMAPd \- Internet Message Access Protocol server
.SH SYNOPSIS
-.B /usr/etc/imapd
+.B /usr/local/libexec/imapd
.SH DESCRIPTION
.I imapd
is a server which supports the

View File

@@ -0,0 +1,14 @@
--- src/ipopd/ipopd.8.orig Sun Sep 30 16:08:01 2007
+++ src/ipopd/ipopd.8 Sun Sep 30 16:08:10 2007
@@ -16,9 +16,9 @@
.SH NAME
IPOPd \- Post Office Protocol server
.SH SYNOPSIS
-.B /usr/etc/ipop2d
+.B /usr/local/libexec/ipop2d
.PP
-.B /usr/etc/ipop3d
+.B /usr/local/libexec/ipop3d
.SH DESCRIPTION
.I ipop2d
and

View File

@@ -0,0 +1,61 @@
--- src/imapd/Makefile.orig 2013-06-21 23:29:17.000000000 +0200
+++ src/imapd/Makefile 2014-12-14 14:44:16.000000000 +0100
@@ -26,11 +26,11 @@
# http://www.apache.org/licenses/LICENSE-2.0
-ALERT=/etc/imapd.alert
+ALERT=$(PREFIX)/etc/imapd.alert
USERALERT=.imapalert
-SHUTDOWN=/etc/nologin
-ANO=/etc/anonymous.newsgroups
-NNTP=/etc/imapd.nntp
+SHUTDOWN=$(PREFIX)/etc/nologin
+ANO=$(PREFIX)/etc/anonymous.newsgroups
+NNTP=$(PREFIX)//etc/imapd.nntp
SHELL= /bin/sh
@@ -38,7 +38,9 @@
# causes the "Manage Mail" menu item to open the given URL, e.g. to point to
# an alternative IMAP client (e.g. Pine) or perhaps to a homebrew mail
# account management page.
-#NSBD= -DNETSCAPE_BRAIN_DAMAGE=\"http://sourceforge.net/projects/re-alpine\"
+.if defined(WITH_NETSCAPE_BRAIN_DAMAGE)
+NSBD= -DNETSCAPE_BRAIN_DAMAGE=\"http://sourceforge.net/projects/re-alpine\"
+.endif
# Un-comment to enable the ESEARCH command. Unfortunately, the iOS4 Mail
# client misinterprets the ESEARCH results due to an ambiguity in RFC 4731.
@@ -46,23 +48,21 @@
# Get local definitions from c-client directory
-C = ../c-client
-CCLIENTLIB = $C/c-client.a
-CC = `cat $C/CCTYPE`
-CFLAGS = -I$C `cat $C/CFLAGS` $(NSBD) $(ESEARCH) -DANOFILE=\"$(ANO)\" \
+CFLAGS = -DNFSKLUDGE -I$(LOCALBASE)/include/c-client $(NSBD) \
+ -DANOFILE=\"$(ANO)\" \
-DALERTFILE=\"$(ALERT)\" -DNNTPFILE=\"$(NNTP)\" \
-DUSERALERTFILE=\"$(USERALERT)\" -DSHUTDOWNFILE=\"$(SHUTDOWN)\"
-LDFLAGS = $(CCLIENTLIB) `cat $C/LDFLAGS`
+LDFLAGS+= $(EXTRALDFLAGS) -L$(LOCALBASE)/lib -lc-client4
+.if defined(WITH_DRAC)
+CFLAGS+= -DETC_DIR=\"$(PREFIX)/etc\" -DDRAC_AUTH
+LDFLAGS+= -ldrac
+.endif
all: imapd
-imapd: $(CCLIENTLIB) imapd.o
+imapd: imapd.o
$(CC) $(CFLAGS) -o imapd imapd.o $(LDFLAGS)
-imapd.o: $C/mail.h $C/misc.h $C/osdep.h
-
-$(CCLIENTLIB):
- cd $C;make
clean:
rm -f *.o imapd || true

View File

@@ -0,0 +1,89 @@
--- src/imapd/imapd.c.orig 2013-06-21 23:29:17.000000000 +0200
+++ src/imapd/imapd.c 2014-11-23 22:59:07.000000000 +0100
@@ -37,6 +37,11 @@
#include "newsrc.h"
#include <sys/stat.h>
+#ifdef DRAC_AUTH
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <stdlib.h>
+#endif /* DRAC_AUTH */
#define CRLF PSOUT ("\015\012") /* primary output terpri */
@@ -214,6 +219,12 @@
/* Global storage */
+#ifdef DRAC_AUTH
+#define DRACTIMEOUT 10*60 /* check every 10 minutes */
+time_t lastdrac = 0; /* time of last drac check */
+extern char *getenv ();
+#endif /* DRAC_AUTH */
+
char *version = "417"; /* edit number of this server */
char *logout = "Logout"; /* syslogreason for logout */
char *goodbye = NIL; /* bye reason */
@@ -294,7 +305,50 @@
msg_string_next, /* get next byte in string structure */
msg_string_setpos /* set position in string structure */
};
-
+
+#ifdef DRAC_AUTH
+/* DRAC Authorization
+ */
+void drac_auth ()
+{
+ if (time (0) > lastdrac + DRACTIMEOUT)
+ {
+ FILE *dracconf;
+ char host[100];
+ char *drachost;
+ char *err;
+ char *p;
+
+ if ( (dracconf = fopen(ETC_DIR "/dracd.host", "r")) == NULL)
+ {
+ syslog (LOG_INFO, "dracd: error opening %s/dracd.host config file",ETC_DIR);
+ exit(1);
+ }
+
+ fgets(host, 100, dracconf);
+ p = strchr(host, '\n');
+ if(p != NULL)
+ *p = '\0';
+ fclose(dracconf);
+
+ if( drachost = (host) )
+ {
+ struct sockaddr_in sin;
+ int sinlen = sizeof (struct sockaddr_in);
+ char *client = getpeername (0,(struct sockaddr *) &sin,(void *) &sinlen) ?
+ "UNKNOWN" : inet_ntoa (sin.sin_addr);
+
+ lastdrac = time(0);
+
+ if (dracauth(drachost, inet_addr(client), &err) != 0)
+ syslog (LOG_INFO, err);
+ else
+ syslog (LOG_INFO, "dracd: authorized ip %s", client);
+ }
+ }
+}
+#endif /* DRAC_AUTH */
+
/* Main program */
int main (int argc,char *argv[])
@@ -1613,6 +1667,9 @@
lasterror ());
return;
}
+ #ifdef DRAC_AUTH
+ drac_auth();
+ #endif /* DRAC_AUTH */
/* change in number of messages? */
if (existsquelled || (nmsgs != stream->nmsgs)) {
PSOUT ("* ");

View File

@@ -0,0 +1,41 @@
--- src/ipopd/Makefile.orig Wed Oct 25 01:55:07 2000
+++ src/ipopd/Makefile Mon Oct 1 03:44:26 2001
@@ -19,29 +19,25 @@
C = ../c-client
-CCLIENTLIB = $C/c-client.a
+#CCLIENTLIB = $C/c-client.a
SHELL = /bin/sh
# Get local definitions from c-client directory
-CC = `cat $C/CCTYPE`
-CFLAGS = -I$C `cat $C/CFLAGS`
-LDFLAGS = $(CCLIENTLIB) `cat $C/LDFLAGS`
+CFLAGS+= -DNFSKLUDGE -I$(LOCALBASE)/include/c-client
+LDFLAGS+= -L$(LOCALBASE)/lib -lc-client4
+.if defined(WITH_DRAC)
+CFLAGS+= -DDRAC_AUTH -DETC_DIR=\"$(PREFIX)/etc\"
+LDFLAGS+= -ldrac
+.endif
ipopd: ipop2d ipop3d
-ipop2d: $(CCLIENTLIB) ipop2d.o
+ipop2d: ipop2d.o
$(CC) $(CFLAGS) -o ipop2d ipop2d.o $(LDFLAGS)
-ipop3d: $(CCLIENTLIB) ipop3d.o
+ipop3d: ipop3d.o
$(CC) $(CFLAGS) -o ipop3d ipop3d.o $(LDFLAGS)
-
-ipop2d.o: $C/mail.h $C/misc.h $C/osdep.h
-
-ipop3d.o: $C/mail.h $C/misc.h $C/osdep.h
-
-$(CCLIENTLIB):
- cd $C;make
clean:
rm -f *.o ipop2d ipop3d || true

View File

@@ -0,0 +1,131 @@
--- src/ipopd/ipop3d.c.orig 2008-06-04 20:18:34.000000000 +0200
+++ src/ipopd/ipop3d.c 2009-01-16 10:19:50.000000000 +0100
@@ -34,6 +34,11 @@
#include <time.h>
#include "c-client.h"
+#ifdef DRAC_AUTH
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <stdlib.h>
+#endif /* DRAC_AUTH */
#define CRLF PSOUT ("\015\012") /* primary output terpri */
@@ -59,6 +64,12 @@
/* Global storage */
+#ifdef DRAC_AUTH
+#define DRACTIMEOUT 10*60 /* check every 10 minutes */
+time_t lastdrac = 0; /* time of last drac check */
+extern char *getenv ();
+#endif /* DRAC_AUTH */
+
char *version = "104"; /* edit number of this server */
short state = AUTHORIZATION; /* server state */
short critical = NIL; /* non-zero if in critical code */
@@ -100,7 +111,53 @@
int mbxopen (char *mailbox);
long blat (char *text,long lines,unsigned long size,STRING *st);
void rset ();
-
+#ifdef DRAC_AUTH
+void drac_auth();
+#endif /* DRAC_AUTH */
+
+#ifdef DRAC_AUTH
+/* DRAC Authorization
+ */
+void drac_auth ()
+{
+ if (time (0) > lastdrac + DRACTIMEOUT)
+ {
+ FILE *dracconf;
+ char host[100];
+ char *drachost;
+ char *err;
+ char *p;
+
+ if ( (dracconf = fopen(ETC_DIR "/dracd.host", "r")) == NULL)
+ {
+ syslog (LOG_INFO, "dracd: error opening %s/dracd.host config file",ETC_DIR);
+ exit(1);
+ }
+
+ fgets(host, 100, dracconf);
+ p = strchr(host, '\n');
+ if(p != NULL)
+ *p = '\0';
+ fclose(dracconf);
+
+ if( drachost = (host) )
+ {
+ struct sockaddr_in sin;
+ int sinlen = sizeof (struct sockaddr_in);
+ char *client = getpeername (0,(struct sockaddr *) &sin,(void *) &sinlen) ?
+ "UNKNOWN" : inet_ntoa (sin.sin_addr);
+
+ lastdrac = time(0);
+
+ if (dracauth(drachost, inet_addr(client), &err) != 0)
+ syslog (LOG_INFO, err);
+ else
+ syslog (LOG_INFO, "dracd: authorized ip %s", client);
+ }
+ }
+}
+#endif /* DRAC_AUTH */
+
/* Main program */
int main (int argc,char *argv[])
@@ -113,7 +170,7 @@
(((s = strrchr (argv[0],'/')) || (s = strrchr (argv[0],'\\'))) ?
s+1 : argv[0]) : "ipop3d";
/* set service name before linkage */
- mail_parameters (NIL,SET_SERVICENAME,(void *) "pop");
+ mail_parameters (NIL,SET_SERVICENAME,(void *) "pop3");
#include "linkage.c"
/* initialize server */
server_init (pgmname,"pop3","pop3s",clkint,kodint,hupint,trmint,NIL);
@@ -228,9 +285,13 @@
syslog (LOG_INFO,"AUTHENTICATE %s failure host=%.80s",s,
tcp_clienthost ());
}
- else if ((state = mbxopen ("INBOX")) == TRANSACTION)
+ else if ((state = mbxopen ("INBOX")) == TRANSACTION) {
+ #ifdef DRAC_AUTH
+ drac_auth();
+ #endif /* DRAC_AUTH */
syslog (LOG_INFO,"Auth user=%.80s host=%.80s nmsgs=%lu/%lu",
user,tcp_clienthost (),nmsgs,stream->nmsgs);
+ }
else syslog (LOG_INFO,"Auth user=%.80s host=%.80s no mailbox",
user,tcp_clienthost ());
}
@@ -260,9 +321,13 @@
PSOUT ("-ERR Missing APOP argument\015\012");
else if (!(user = apop_login (challenge,s,t,argc,argv)))
PSOUT ("-ERR Bad APOP\015\012");
- else if ((state = mbxopen ("INBOX")) == TRANSACTION)
+ else if ((state = mbxopen ("INBOX")) == TRANSACTION) {
+ #ifdef DRAC_AUTH
+ drac_auth();
+ #endif /* DRAC_AUTH */
syslog (LOG_INFO,"APOP user=%.80s host=%.80s nmsgs=%lu/%lu",
user,tcp_clienthost (),nmsgs,stream->nmsgs);
+ }
else syslog (LOG_INFO,"APOP user=%.80s host=%.80s no mailbox",
user,tcp_clienthost ());
}
@@ -665,6 +730,9 @@
/* attempt the login */
if (server_login (user,pass,t,argc,argv)) {
int ret = mbxopen ("INBOX");
+ #ifdef DRAC_AUTH
+ drac_auth();
+ #endif /* DRAC_AUTH */
if (ret == TRANSACTION) /* mailbox opened OK? */
syslog (LOG_INFO,"%sLogin user=%.80s host=%.80s nmsgs=%lu/%lu",
t ? "Admin " : "",user,tcp_clienthost (),nmsgs,stream->nmsgs);

View File

@@ -0,0 +1,28 @@
--- src/mailutil/Makefile.orig Tue Nov 19 01:41:46 2002
+++ src/mailutil/Makefile Wed Nov 27 03:51:27 2002
@@ -19,22 +19,15 @@
C = ../c-client
-CCLIENTLIB = $C/c-client.a
SHELL = /bin/sh
# Get local definitions from c-client directory
-CC = `cat $C/CCTYPE`
-CFLAGS = -I$C `cat $C/CFLAGS`
-LDFLAGS = $(CCLIENTLIB) `cat $C/LDFLAGS`
+CFLAGS+= -DNFSKLUDGE -I$(LOCALBASE)/include/c-client
+LDFLAGS+= -L$(LOCALBASE)/lib -lc-client4
-mailutil: $(CCLIENTLIB) mailutil.o
+mailutil: mailutil.o
$(CC) $(CFLAGS) -o mailutil mailutil.o $(LDFLAGS)
-
-mailutil.o: $C/mail.h $C/misc.h $C/osdep.h
-
-$(CCLIENTLIB):
- cd $C;make
clean:
rm -f *.o mailutil

View File

@@ -0,0 +1,30 @@
--- src/mtest/Makefile.orig Wed Oct 25 01:55:39 2000
+++ src/mtest/Makefile Mon Oct 1 03:42:11 2001
@@ -19,24 +19,17 @@
C = ../c-client
-CCLIENTLIB = $C/c-client.a
SHELL = /bin/sh
# Get local definitions from c-client directory
-CC = `cat $C/CCTYPE`
-CFLAGS = -I$C `cat $C/CFLAGS`
-LDFLAGS = $(CCLIENTLIB) `cat $C/LDFLAGS`
+CFLAGS+= -DNFSKLUDGE -I$(LOCALBASE)/include/c-client
+LDFLAGS+= -L$(LOCALBASE)/lib -lc-client4
all: mtest
-mtest: $(CCLIENTLIB) mtest.o
+mtest: mtest.o
$(CC) $(CFLAGS) -o mtest mtest.o $(LDFLAGS)
-
-mtest.o: $C/mail.h $C/misc.h $C/osdep.h $C/rfc822.h $C/smtp.h $C/nntp.h
-
-$(CCLIENTLIB):
- cd $C;make
clean:
rm -f *.o mtest || true

View File

@@ -0,0 +1,47 @@
--- src/mtest/mtest.c.orig Sat May 29 08:07:06 1999
+++ src/mtest/mtest.c Sun Dec 19 15:29:29 1999
@@ -95,6 +95,7 @@
void status (MAILSTREAM *stream);
void prompt (char *msg,char *txt);
void smtptest (long debug);
+char *safegets(char *buf);
/* Main program - initialization */
@@ -528,7 +529,7 @@
void prompt (char *msg,char *txt)
{
printf ("%s",msg);
- gets (txt);
+ safegets (txt);
}
/* Interfaces to C-client */
@@ -713,7 +714,7 @@
puts (" Msg (end with a line with only a '.'):");
body->type = TYPETEXT;
*text = '\0';
- while (gets (line)) {
+ while (safegets (line)) {
if (line[0] == '.') {
if (line[1] == '\0') break;
else strcat (text,".");
@@ -744,4 +745,18 @@
else puts ("[Can't open connection to any server]");
mail_free_envelope (&msg);
mail_free_body (&body);
+}
+
+char *safegets(char *buf) {
+ char *p;
+
+ if (!fgets(buf, MAILTMPLEN, stdin)) {
+ return NULL;
+ }
+
+ if ((p = strchr(buf, '\n')) != NULL) {
+ *p = '\0';
+ }
+
+ return buf;
}

View File

@@ -0,0 +1,154 @@
*** src/osdep/unix/Makefile.orig Sun Jun 17 17:37:44 2007
--- src/osdep/unix/Makefile Mon Jul 23 17:34:03 2007
***************
*** 54,66 ****
# Extended flags needed for SSL. You may need to modify.
! SSLDIR=/usr/local/ssl
! SSLCERTS=$(SSLDIR)/certs
SSLKEYS=$(SSLCERTS)
SSLINCLUDE=$(SSLDIR)/include
SSLLIB=$(SSLDIR)/lib
! SSLCRYPTO=-lcrypto
# Older versions of MIT Kerberos also have a libcrypto. If so, you may need
# to use this instead
--- 54,66 ----
# Extended flags needed for SSL. You may need to modify.
! #SSLDIR=/usr/local/ssl
! SSLCERTS=$(PREFIX)/certs
SSLKEYS=$(SSLCERTS)
SSLINCLUDE=$(SSLDIR)/include
SSLLIB=$(SSLDIR)/lib
! SSLCRYPTO=-lcrypto -lcrypt
# Older versions of MIT Kerberos also have a libcrypto. If so, you may need
# to use this instead
***************
*** 73,79 ****
SSLCFLAGS= -I$(SSLINCLUDE) -I$(SSLINCLUDE)/openssl\
-DSSL_CERT_DIRECTORY=\"$(SSLCERTS)\" -DSSL_KEY_DIRECTORY=\"$(SSLKEYS)\"
! SSLLDFLAGS= -L$(SSLLIB) -lssl $(SSLCRYPTO) $(SSLRSA)
# Extended flags needed for non-standard passwd types. You may need to modify.
--- 73,79 ----
SSLCFLAGS= -I$(SSLINCLUDE) -I$(SSLINCLUDE)/openssl\
-DSSL_CERT_DIRECTORY=\"$(SSLCERTS)\" -DSSL_KEY_DIRECTORY=\"$(SSLKEYS)\"
! SSLLDFLAGS= # -L$(SSLLIB) -lssl $(SSLCRYPTO) $(SSLRSA)
# Extended flags needed for non-standard passwd types. You may need to modify.
***************
*** 87,93 ****
# AFSLDFLAGS may also need -L/usr/ucblib -lucb
DCECFLAGS= -DDCE_MINIMAL -DPASSWD_OVERRIDE=\"/opt/pop3/passwd/passwd\"
DCELDFLAGS= -ldce
! PAMLDFLAGS= -lpam -ldl
# Build parameters normally set by the individual port
--- 87,93 ----
# AFSLDFLAGS may also need -L/usr/ucblib -lucb
DCECFLAGS= -DDCE_MINIMAL -DPASSWD_OVERRIDE=\"/opt/pop3/passwd/passwd\"
DCELDFLAGS= -ldce
! PAMLDFLAGS= # -lpam -lcrypt
# Build parameters normally set by the individual port
***************
*** 125,131 ****
# Commands possibly overriden by the individual port
ARRC=ar rc
! CC=cc
LN=ln -s
RANLIB=ranlib
--- 125,131 ----
# Commands possibly overriden by the individual port
ARRC=ar rc
! CC?=cc
LN=ln -s
RANLIB=ranlib
***************
*** 149,155 ****
dummy.o pseudo.o netmsg.o flstring.o fdstring.o \
rfc822.o nntp.o smtp.o imap4r1.o pop3.o \
unix.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o mix.o
! CFLAGS=-g
CAT=cat
MAKE=make
--- 149,155 ----
dummy.o pseudo.o netmsg.o flstring.o fdstring.o \
rfc822.o nntp.o smtp.o imap4r1.o pop3.o \
unix.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o mix.o
! CFLAGS+=$(BASECFLAGS) $(EXTRACFLAGS)
CAT=cat
MAKE=make
***************
*** 232,237 ****
--- 232,246 ----
BASECFLAGS="-g -B/usr/lib/big/ -Dvoid=char -Dconst=" \
RANLIB=true ARRC="ar -rc"
+ bfp: # FreeBSD Pluggable Authentication Modules
+ $(BUILD) `cat SPECIALS` OS=bsi SIGTYPE=psx CHECKPW=pam \
+ SPOOLDIR=/var \
+ ACTIVEFILE=/usr/local/news/lib/active \
+ RSHPATH=/usr/bin/rsh \
+ LOCKPGM=$(PREFIX)/libexec/mlock \
+ BASECFLAGS="-DNFSKLUDGE" \
+ BASELDFLAGS="-lpam -lcrypt"
+
bs3: # BSD/i386 3.0 or higher
$(BUILD) `$(CAT) SPECIALS` OS=bsi \
CHECKPW=bsi LOGINPW=bsi CRXTYPE=nfs \
***************
*** 251,258 ****
SPOOLDIR=/var \
ACTIVEFILE=/usr/local/news/lib/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="$(GCCCFLAGS)" \
! BASELDFLAGS="-lcrypt"
bsi: # BSD/i386
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
--- 260,268 ----
SPOOLDIR=/var \
ACTIVEFILE=/usr/local/news/lib/active \
RSHPATH=/usr/bin/rsh \
+ LOCKPGM=$(PREFIX)/libexec/mlock \
BASECFLAGS="$(GCCCFLAGS)" \
! BASELDFLAGS=""
bsi: # BSD/i386
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
***************
*** 842,848 ****
build: clean once $(ARCHIVE)
! all: $(ARCHIVE)
$(ARCHIVE): $(BINARIES)
sh -c '$(RM) $(ARCHIVE) || true'
--- 852,858 ----
build: clean once $(ARCHIVE)
! all: onceenv
$(ARCHIVE): $(BINARIES)
sh -c '$(RM) $(ARCHIVE) || true'

View File

@@ -0,0 +1,21 @@
--- src/osdep/unix/os_bsi.h.orig Sat Oct 19 20:30:04 1996
+++ src/osdep/unix/os_bsi.h Sun May 24 10:46:33 1998
@@ -37,7 +37,18 @@
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
+
+/*
+ * FreeBSD v3.x and onward whines about <sys/dir.h> being obsolete, so switch
+ * to POSIX semantics.
+ */
+#if __FreeBSD__ >= 3
+#include <dirent.h>
+#define direct dirent
+#else
#include <sys/dir.h>
+#endif
+
#include <fcntl.h>
#include <syslog.h>
#include <sys/file.h>

View File

@@ -0,0 +1,33 @@
The ipop2d, ipop3d, and imapd daemons should be invoked by your
/etc/inetd.conf file with lines such as:
pop2 stream tcp nowait root %%PREFIX%%/libexec/ipop2d ipop2d
pop3 stream tcp nowait root %%PREFIX%%/libexec/ipop3d ipop3d
imap4 stream tcp nowait root %%PREFIX%%/libexec/imapd imapd
If PAM authentication support has been compiled in you will need to add
something like the following lines to /etc/pam.conf (PAM authentication is
default):
imap auth required pam_unix.so
imap account required pam_unix.so
imap session required pam_unix.so
pop3 auth required pam_unix.so
pop3 account required pam_unix.so
pop3 session required pam_unix.so
The pam_unix module does not have session support, so we do not use it for
session management. Be sure to read up on pam.conf(5).
To configure imap-uw read %%DOCSDIR%%/imaprc.txt. Particularly consider
changing mail-subdirectory to mail to have ~/mail the default mail
directory as is default in some MUAs, and to avoid having the whole home
dir accessed.
===> NB: IMAP-UW now rejects non-encrypted logins by default. To change this
===> behaviour, recompile and reinstall cclient and imap-uw ports with one of
===> the following make variables defined:
WITHOUT_SSL - build without SSL/encryption support.
WITH_SSL_AND_PLAINTEXT - build with SSL/encryption support, but allow
non-encrypted logins.

View File

@@ -0,0 +1,6 @@
This is the IMAP4rev1 server from the University of Washington.
Included are (almost) backwards-compatible POP2 and POP3 servers.
This is the version forked from UW by the original author Mark Crispin.
WWW: http://www.washington.edu/imap/

91
mail/panda-imap/pkg-plist Normal file
View File

@@ -0,0 +1,91 @@
bin/dmail
bin/mailutil
bin/mboxtest
bin/tmail
libexec/imapd
libexec/ipop2d
libexec/ipop3d
@(,mail,2711) libexec/mlock
man/man1/dmail.1.gz
man/man1/mailutil.1.gz
man/man1/tmail.1.gz
man/man8/ipopd.8.gz
man/man8/imapd.8.gz
%%PORTDOCS%%%%DOCSDIR%%/BUILD
%%PORTDOCS%%%%DOCSDIR%%/CONFIG
%%PORTDOCS%%%%DOCSDIR%%/FAQ.html
%%PORTDOCS%%%%DOCSDIR%%/FAQ.txt
%%PORTDOCS%%%%DOCSDIR%%/IPv6.txt
%%PORTDOCS%%%%DOCSDIR%%/RELNOTES
%%PORTDOCS%%%%DOCSDIR%%/SSLBUILD
%%PORTDOCS%%%%DOCSDIR%%/Y2K
%%PORTDOCS%%%%DOCSDIR%%/bugs.txt
%%PORTDOCS%%%%DOCSDIR%%/calendar.txt
%%PORTDOCS%%%%DOCSDIR%%/commndmt.txt
%%PORTDOCS%%%%DOCSDIR%%/drivers.txt
%%PORTDOCS%%%%DOCSDIR%%/formats.txt
%%PORTDOCS%%%%DOCSDIR%%/imaprc.txt
%%PORTDOCS%%%%DOCSDIR%%/internal.txt
%%PORTDOCS%%%%DOCSDIR%%/locking.txt
%%PORTDOCS%%%%DOCSDIR%%/md5.txt
%%PORTDOCS%%%%DOCSDIR%%/mixfmt.txt
%%PORTDOCS%%%%DOCSDIR%%/naming.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/README
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc1732.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc1733.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc2061.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc2062.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc2087.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc2088.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc2177.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc2180.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc2193.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc2195.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc2221.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc2342.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc2683.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc2971.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc3348.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc3501.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc3502.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc3503.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc3516.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc3656.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc3691.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc4314.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc4315.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc4422.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc4466.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc4467.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc4468.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc4469.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc4505.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc4549.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc4551.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc4616.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc4731.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc4752.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc4790.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc4959.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc4978.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5032.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5051.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5092.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5161.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5162.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5234.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5255.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5256.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5257.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5258.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5259.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5267.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5464.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5465.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5466.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5524.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5530.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5593.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5738.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5788.txt
%%PORTDOCS%%%%DOCSDIR%%/rfc/rfc5819.txt

View File

@@ -0,0 +1,23 @@
#! /bin/sh
# anders@fix.no, 2001-06-19
if [ ! -f "$1" ]
then
echo "Your installation of the cclient port is outdated. Please delete it before"
echo "continuing."
exit 1
fi
portver=`grep "^#define CCLIENT_PORTVERSION" $1 | awk '{print $3}' \
| sed s/\"//g`
if [ "$portver" = "$2" ]
then
echo "Your imap-uw port matches the version of your cclient port. Fine."
exit 0
else
echo "Your cclient port (PORTVERSION $portver) does not match the version of imap-uw"
echo "(PORTVERSION $2) you are trying to install. Please delete your"
echo "installation of the cclient port before continuing."
exit 1
fi

View File

@@ -0,0 +1,27 @@
#! /bin/sh
# anders@fix.no, 2001-06-19
sslenabled=`grep "^#define CCLIENT_SSLENABLED" $1 | awk '{print $3}' \
| sed s/\"//g`
case $2 in
yes)
if [ "$sslenabled" = "yes" ]
then
echo "SSL check passed. We want SSL support, and cclient has it. Good."
exit 0
else
echo "SSL check failed. We want SSL support, but cclient doesn't have it."
echo "Please recompile and reinstall the cclient port with WITH_SSL=yes set."
exit 1
fi
;;
*)
if [ "$sslenabled" = "yes" ]
then
echo "You did not want SSL (by not defining WITH_SSL). Funny thing is, your cclient"
echo "port has SSL support installed."
exit 0
fi
;;
esac