Mega cclient port SSL commit redux. This time with maintainer approval.

1. Add support for building cclient with SSL. Warn about the possibility
that some ports may have been missed and need ssl added at link time.

2. Update cclient and imap-uw to latest versions.

3. Fix pine4 to add ssl libraries. This can be used as a model for what
other ports may need to do.

4. Release MAINTAINERship (by request).

Submitted by:	anders@fix.no
Approved by:	petef@databits.net
This commit is contained in:
Nick Sayer 2001-04-05 03:21:41 +00:00
parent b56bff1527
commit 01436013af
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=40861
12 changed files with 160 additions and 102 deletions

View File

@ -6,20 +6,26 @@
#
PORTNAME= cclient
PORTVERSION= 2000c
PORTVERSION= 0104031813
CATEGORIES= mail devel
MASTER_SITES= ftp://ftp.cac.washington.edu/imap/%SUBDIR%/ \
ftp://ftp.funet.fi/pub/mirrors/ftp.cac.washington.edu/imap/%SUBDIR%/ \
http://mirror.nucba.ac.jp/mirror/%SUBDIR%/
MASTER_SITE_SUBDIR= . old
DISTNAME= imap-${PORTVERSION}
DISTNAME= imap-2001.BETA.SNAP-${PORTVERSION}
EXTRACT_SUFX= .tar.Z
MAINTAINER= petef@databits.net
MAINTAINER= ports@freebsd.org
INSTALLS_SHLIB= yes
.if defined(WITH_SSL)
ALL_TARGET= bsf SSLTYPE=unix
.else
ALL_TARGET= bsf
USE_OPENSSL= yes
.endif
SHLIBBASE= c-client4
SHLIBMAJ= 8
SHLIBNAME= lib${SHLIBBASE}.so.${SHLIBMAJ}
@ -27,8 +33,7 @@ MAKE_ENV= SHLIBNAME=${SHLIBNAME} SHLIBBASE=${SHLIBBASE}
PLIST_SUB= SHLIBNAME=${SHLIBNAME} SHLIBBASE=${SHLIBBASE}
PREFIX_FIX_FILES= Makefile src/osdep/unix/Makefile \
src/osdep/unix/Makefile.gss \
src/osdep/unix/Makefile.ssl
src/osdep/unix/Makefile.gss
.include <bsd.port.pre.mk>
@ -59,6 +64,13 @@ do-install:
${INSTALL_DATA} ${WRKSRC}/c-client/c-client.a \
${PREFIX}/lib/lib${SHLIBBASE}.a
.if defined(WITH_SSL)
post-install:
@${ECHO} "================================================================================"
@${ECHO} "Warning: You have chosen to include SSL support. Applications/ports that use"
@${ECHO} "the cclient library but do not support SSL may stop working or have problems
@${ECHO} "linking. Linking explicitly with ssl (-lssl -lcrypto) may or may not help."
@${ECHO} "================================================================================"
.endif
.include <bsd.port.post.mk>

View File

@ -1 +1 @@
MD5 (imap-2000c.tar.Z) = 90bdc0670812234a0589286798575980
MD5 (imap-2001.BETA.SNAP-0104031813.tar.Z) = 327a8494019c07880072a855eb24060f

View File

@ -1,6 +1,26 @@
--- src/osdep/unix/Makefile.orig Sat Feb 3 15:55:21 2001
+++ src/osdep/unix/Makefile Sat Feb 3 16:05:02 2001
@@ -74,7 +74,7 @@
--- src/osdep/unix/Makefile.orig Tue Mar 6 07:07:37 2001
+++ src/osdep/unix/Makefile Tue Apr 3 21:46:31 2001
@@ -28,10 +28,17 @@
# Extended flags needed for SSL. You may need to modify.
-SSLDIR=/usr/local/ssl
+.if ${OSVERSION} >= 400014
+SSLDIR=/usr
+SSLCERTS=$(PREFIX)/certs
+SSLINCLUDE=$(SSLDIR)/include/openssl
+SSLLIB=$(SSLDIR)/lib
+.else
+SSLDIR=$(PREFIX)
SSLCERTS=$(SSLDIR)/certs
-SSLINCLUDE=$(SSLDIR)/include
+SSLINCLUDE=$(SSLDIR)/include/openssl
SSLLIB=$(SSLDIR)/lib
+.endif
SSLCRYPTO=-lcrypto
@@ -97,7 +104,7 @@
# Commands possibly overriden by the individual port
ARRC=ar rc
@ -9,7 +29,7 @@
LN=ln -s
RANLIB=ranlib
@@ -92,7 +92,7 @@
@@ -115,7 +122,7 @@
dummy.o pseudo.o netmsg.o flstring.o fdstring.o \
rfc822.o nntp.o smtp.o imap4r1.o pop3.o \
unix.o mbox.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o
@ -18,9 +38,9 @@
CAT=cat
MAKE=make
@@ -108,6 +108,10 @@
EXTRADRIVERS='$(EXTRADRIVERS)' EXTRAAUTHENTICATORS='$(EXTRAAUTHENTICATORS)'\
PASSWDTYPE=$(PASSWDTYPE) SPECIALAUTHENTICATORS='$(SPECIALAUTHENTICATORS)'
@@ -132,6 +139,10 @@
PASSWDTYPE=$(PASSWDTYPE) SSLTYPE=$(SSLTYPE)
+# Need this for the shared library rule to work correctly
+.SUFFIXES: .o .so
@ -29,7 +49,7 @@
# Here if no make argument established
missing: osdep.h
@@ -188,13 +192,14 @@
@@ -212,13 +223,14 @@
BASECFLAGS="-g -Dconst="
bsf: # FreeBSD
@ -47,7 +67,7 @@
bsi: # BSD/i386
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
@@ -718,15 +723,26 @@
@@ -752,15 +764,26 @@
# Build it!
@ -76,7 +96,7 @@
.c.o:
`$(CAT) CCTYPE` -c `$(CAT) CFLAGS` $*.c
@@ -735,6 +751,7 @@
@@ -769,6 +792,7 @@
clean:
sh -c '$(RM) auths.c crexcl.c flockbsd.c linkage.[ch] siglocal.c osdep*.[ch] *.o ARCHIVE *FLAGS *TYPE $(ARCHIVE) || true'
@ -84,7 +104,7 @@
# Dependencies
@@ -768,7 +785,7 @@
@@ -802,7 +826,7 @@
# OS-dependent
@ -93,8 +113,8 @@
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 \
auths.c crexcl.c flock.c flockbsd.c flcksafe.c fsync.c gethstid.c \
@@ -780,7 +797,12 @@
write.c \
@@ -814,7 +838,12 @@
write.c sslstdio.c \
strerror.c strpbrk.c strstr.c strtok.c strtoul.c \
OSCFLAGS
- `$(CAT) CCTYPE` -c `$(CAT) CFLAGS` `$(CAT) OSCFLAGS` -c osdep.c
@ -105,5 +125,5 @@
+osdep.so: $(OSDEPS)
+ $(CC) -fpic -DPIC -c $(CFLAGS) `cat OSCFLAGS` osdep.c -o $@
osdep.c: osdepbas.c osdepckp.c osdeplog.c
$(CAT) osdepbas.c osdepckp.c osdeplog.c > osdep.c
osdep.c: osdepbas.c osdepckp.c osdeplog.c osdepssl.c
$(CAT) osdepbas.c osdepckp.c osdeplog.c osdepssl.c > osdep.c

View File

@ -6,7 +6,7 @@
#
PORTNAME= imap
PORTVERSION= 2000c
PORTVERSION= 0104031813
CATEGORIES= mail
MASTER_SITES= ftp://ftp.cac.washington.edu/imap/%SUBDIR%/ \
ftp://ftp.funet.fi/pub/mirrors/ftp.cac.washington.edu/mail/%SUBDIR%/ \
@ -14,18 +14,25 @@ MASTER_SITES= ftp://ftp.cac.washington.edu/imap/%SUBDIR%/ \
ftp://ftp.uni-halle.de/pub/mail/pine/%SUBDIR%/
MASTER_SITE_SUBDIR= . old
PKGNAMESUFFIX= -uw
DISTFILES= ${DISTNAME}.tar.Z \
imap-utils.tar.Z
DISTNAME= imap-2001.BETA.SNAP-${PORTVERSION}
DISTFILES= ${DISTNAME}.tar.Z imap-utils.tar.Z
MAINTAINER= petef@databits.net
MAINTAINER= ports@freebsd.org
LIB_DEPENDS= c-client4.8:${PORTSDIR}/mail/cclient
.if defined(WITH_DRAC)
BUILD_DEPENDS= ${LOCALBASE}/lib/libdrac.a:${PORTSDIR}/mail/drac
.endif
.if defined(WITH_SSL)
USE_OPENSSL= yes
.endif
MAN8= ipopd.8 imapd.8
.if defined(WITH_SSL)
ALL_TARGET= bsf SSLTYPE=unix
.else
ALL_TARGET= bsf
.endif
.include <bsd.port.pre.mk>
@ -49,8 +56,9 @@ do-install:
${INSTALL_MAN} \
${WRKSRC}/src/ipopd/ipopd.8c ${PREFIX}/man/man8/ipopd.8
.if defined(WITH_DRAC)
post-install:
@${CAT} ${PKGMESSAGE}
.if defined(WITH_DRAC)
@${ECHO} "================================================================================"
@${ECHO} "To have DRAC working, you must create ${PREFIX}/etc/dracd.host, containing"
@${ECHO} "the hostname of the DRAC server:"
@ -58,8 +66,26 @@ post-install:
@${ECHO} "localhost"
@${ECHO} "================================================================================"
.endif
.if defined(WITH_SSL)
@${ECHO} "To create and install a new SSL certificate for imapd and ipop3d, type \"make"
@${ECHO} "cert\"."
@${ECHO}
@${ECHO} "Example inetd config for the SSL services:"
@${ECHO}
@${ECHO} "pop3s stream tcp nowait root /usr/local/libexec/ipop3d ipop3d"
@${ECHO} "imaps stream tcp nowait root /usr/local/libexec/imapd imapd"
@${ECHO}
@${ECHO} "Remember to recompile and reinstall your cclient port with SSL support too, if"
@${ECHO} "you had it installed without SSL support."
@${ECHO}
@${ECHO} "================================================================================"
.endif
post-install:
@${CAT} ${PKGMESSAGE}
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>

View File

@ -1,2 +1,2 @@
MD5 (imap-2000c.tar.Z) = 90bdc0670812234a0589286798575980
MD5 (imap-2001.BETA.SNAP-0104031813.tar.Z) = 327a8494019c07880072a855eb24060f
MD5 (imap-utils.tar.Z) = a6453029f201b32e9ed761e662c47b0f

View File

@ -1,15 +1,33 @@
--- src/osdep/unix/Makefile.old Tue Oct 31 22:55:01 2000
+++ src/osdep/unix/Makefile Sun Dec 31 19:11:17 2000
@@ -23,7 +23,7 @@
--- src/osdep/unix/Makefile.orig Tue Mar 6 07:07:37 2001
+++ src/osdep/unix/Makefile Tue Apr 3 23:48:08 2001
@@ -22,16 +22,23 @@
EXTRAAUTHENTICATORS=
SPECIALAUTHENTICATORS=
EXTRADRIVERS=mbox
-PASSWDTYPE=std
+PASSWDTYPE=pam
SSLTYPE=none
# Extended flags needed for non-standard passwd types. You may need to modify.
@@ -37,7 +37,7 @@
# Extended flags needed for SSL. You may need to modify.
-SSLDIR=/usr/local/ssl
+.if ${OSVERSION} >= 400014
+SSLDIR=/usr
+SSLCERTS=$(PREFIX)/certs
+SSLINCLUDE=$(SSLDIR)/include/openssl
+SSLLIB=$(SSLDIR)/lib
+.else
+SSLDIR=$(PREFIX)
SSLCERTS=$(SSLDIR)/certs
-SSLINCLUDE=$(SSLDIR)/include
+SSLINCLUDE=$(SSLDIR)/include/openssl
SSLLIB=$(SSLDIR)/lib
+.endif
SSLCRYPTO=-lcrypto
@@ -60,7 +67,7 @@
# AFSLDFLAGS may also need -L/usr/ucblib -lucb
DCECFLAGS= -DDCE_MINIMAL -DPASSWD_OVERRIDE=\"/opt/pop3/passwd/passwd\"
DCELDFLAGS= -ldce
@ -18,7 +36,7 @@
# Build parameters normally set by the individual port
@@ -74,7 +74,7 @@
@@ -97,7 +104,7 @@
# Commands possibly overriden by the individual port
ARRC=ar rc
@ -27,7 +45,7 @@
LN=ln -s
RANLIB=ranlib
@@ -92,7 +92,7 @@
@@ -115,7 +122,7 @@
dummy.o pseudo.o netmsg.o flstring.o fdstring.o \
rfc822.o nntp.o smtp.o imap4r1.o pop3.o \
unix.o mbox.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o
@ -36,12 +54,12 @@
CAT=cat
MAKE=make
@@ -175,6 +175,15 @@
@@ -198,6 +205,15 @@
BASECFLAGS="-g -B/usr/lib/big/ -Dvoid=char -Dconst=" \
RANLIB=true ARRC="ar -rc"
+bfp: # FreeBSD Pluggable Authentication Modules
+ $(BUILD) `cat EXTRASPECIALS` OS=bsi SIGTYPE=psx CHECKPW=pam \
+ $(BUILD) `cat SPECIALS` OS=bsi SIGTYPE=psx CHECKPW=pam \
+ SPOOLDIR=/var \
+ ACTIVEFILE=/usr/local/news/lib/active \
+ RSHPATH=/usr/bin/rsh \
@ -52,7 +70,7 @@
bs3: # BSD/i386 3.0 or higher
$(BUILD) `$(CAT) SPECIALS` OS=bsi \
CHECKPW=bsi LOGINPW=bsi CRXTYPE=nfs \
@@ -190,12 +199,13 @@
@@ -213,12 +229,13 @@
bsf: # FreeBSD
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
@ -69,7 +87,7 @@
bsi: # BSD/i386
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
@@ -704,7 +714,7 @@
@@ -754,7 +771,7 @@
build: clean once $(ARCHIVE)

View File

@ -1,18 +1,19 @@
--- src/imapd/Makefile.orig Tue Jan 9 16:08:17 2001
+++ src/imapd/Makefile Sun Feb 4 11:54:00 2001
@@ -18,9 +18,9 @@
--- src/imapd/Makefile.orig Tue Apr 3 23:54:13 2001
+++ src/imapd/Makefile Wed Apr 4 00:05:39 2001
@@ -18,10 +18,10 @@
# CPYRIGHT, included with this Distribution.
-ALERT=/etc/imapd.alert
+ALERT=$(PREFIX)/etc/imapd.alert
USERALERT=.imapalert
SHUTDOWN=/etc/nologin
-ANO=/etc/anonymous.newsgroups
+ANO=$(PREFIX)/etc/anonymous.newsgroups
SHELL= /bin/sh
@@ -39,21 +39,23 @@
@@ -40,22 +40,24 @@
# Get local definitions from c-client directory
C = ../c-client
@ -22,13 +23,14 @@
-CFLAGS = -I$C `cat $C/CFLAGS` $(EXTRACFLAGS) -DANOFILE=\"$(ANO)\" \
+.if defined(WITH_DRAC)
+CFLAGS = `cat $C/CFLAGS` -DANOFILE=\"$(ANO)\" -DETC_DIR=\"$(PREFIX)/etc\" \
+ -DALERTFILE=\"$(ALERT)\" -DUSERALERTFILE=\"$(USERALERT)\" -DDRAC_AUTH
+ -DALERTFILE=\"$(ALERT)\" -DUSERALERTFILE=\"$(USERALERT)\" -DDRAC_AUTH \
+ -DSHUTDOWNFILE=\"$(SHUTDOWN)\"
+LDFLAGS = $(EXTRALDFLAGS) `cat $C/LDFLAGS` -ldrac
+.else
+CFLAGS = `cat $C/CFLAGS` -DANOFILE=\"$(ANO)\" \
-DALERTFILE=\"$(ALERT)\" -DUSERALERTFILE=\"$(USERALERT)\"
-DALERTFILE=\"$(ALERT)\" -DUSERALERTFILE=\"$(USERALERT)\" \
-DSHUTDOWNFILE=\"$(SHUTDOWN)\"
-LDFLAGS = $(CCLIENTLIB) `cat $C/LDFLAGS`
+
+LDFLAGS = $(EXTRALDFLAGS) `cat $C/LDFLAGS`
+.endif

View File

@ -1,6 +1,6 @@
--- src/ipopd/ipop3d.c.orig Sun Dec 10 14:31:14 2000
+++ src/ipopd/ipop3d.c Tue Mar 27 07:10:35 2001
@@ -35,6 +35,11 @@
--- src/ipopd/ipop3d.c.old Wed Apr 4 00:19:48 2001
+++ src/ipopd/ipop3d.c Wed Apr 4 00:28:24 2001
@@ -28,6 +28,11 @@
#include <time.h>
#include "c-client.h"
@ -10,22 +10,22 @@
+#include <stdlib.h>
+#endif /* DRAC_AUTH */
/* Autologout timer */
#define KODTIMEOUT 60*5
@@ -61,6 +66,12 @@
#define CRLF PSOUT ("\015\012") /* primary output terpri */
@@ -57,6 +62,12 @@
/* Global storage */
+#ifdef DRAC_AUTH
+#define DRACTIMEOUT 10*60 /* check every 10 minutes */
+time_t lastdrac = 0; /* time of last drac check */
+#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 = "2000.70"; /* server version */
+
char *version = "2001.75"; /* server version */
short state = AUTHORIZATION; /* server state */
short critical = NIL; /* non-zero if in critical code */
@@ -104,7 +115,7 @@
@@ -100,7 +111,7 @@
#include "linkage.c"
/* initialize server */
server_init ((s = strrchr (argv[0],'/')) ? s + 1 : argv[0],

View File

@ -1,15 +1,6 @@
--- src/imapd/imapd.c.orig Tue Jan 9 16:11:44 2001
+++ src/imapd/imapd.c Tue Mar 27 07:16:48 2001
@@ -17,7 +17,7 @@
* The full text of our legal notices is contained in the file called
* CPYRIGHT, included with this Distribution.
*/
-
+
/* Primary I/O calls */
#define PBIN getchar /* primary byte input */
@@ -43,6 +43,11 @@
--- src/imapd/imapd.c.old Wed Apr 4 00:31:43 2001
+++ src/imapd/imapd.c Wed Apr 4 00:34:15 2001
@@ -29,6 +29,11 @@
#include "c-client.h"
#include <sys/stat.h>
@ -19,40 +10,22 @@
+#include <stdlib.h>
+#endif /* DRAC_AUTH */
/* Timeouts and timers */
#define CRLF PSOUT ("\015\012") /* primary output terpri */
@@ -66,7 +71,7 @@
#define SELECT 1
#define OPEN 2
#define LOGOUT 3
-
+
/* Body text fetching */
typedef struct text_args {
@@ -98,7 +103,7 @@
char *date; /* current date */
STRING *message; /* strintstruct of message */
} MSGDATA;
-
+
/* Function prototypes */
int main (int argc,char *argv[]);
@@ -181,6 +186,12 @@
@@ -171,6 +176,12 @@
/* Global storage */
+#ifdef DRAC_AUTH
+#define DRACTIMEOUT 10*60 /* check every 10 minutes */
+time_t lastdrac = 0; /* time of last drac check */
+#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 = "2000.287"; /* version number of this server */
char *version = "2001.297"; /* version number of this server */
time_t alerttime = 0; /* time of last alert */
time_t sysalerttime = 0; /* time of last system alert */
@@ -1139,6 +1150,44 @@
@@ -1160,6 +1171,45 @@
lasterror ());
return;
}
@ -94,6 +67,7 @@
+ }
+ }
+#endif /* DRAC_AUTH */
+
/* change in number of messages? */
if (existsquelled || (nmsgs != stream->nmsgs)) {
PSOUT ("* ");

View File

@ -5,10 +5,11 @@ pop2 stream tcp nowait root /usr/local/libexec/ipop2d ipop2d
pop3 stream tcp nowait root /usr/local/libexec/ipop3d ipop3d
imap4 stream tcp nowait root /usr/local/libexec/imapd imapd
If PAM authentication support has been compiled in you may need to add the
following lines to /etc/pam.conf:
If PAM authentication support has been compiled in you may need to add
something like the following lines to /etc/pam.conf (PAM authentication is
default):
imap auth required pam_unix.so try_first_pass
imap account required pam_unix.so try_first_pass
pop auth required pam_unix.so try_first_pass
pop account required pam_unix.so try_first_pass
pop3 auth required pam_unix.so try_first_pass
pop3 account required pam_unix.so try_first_pass

View File

@ -15,7 +15,7 @@ CATEGORIES= mail news
MASTER_SITES= ftp://ftp.cac.washington.edu/pine/
DISTNAME?= ${PORTNAME}${PORTVERSION}
MAINTAINER?= petef@databits.net
MAINTAINER?= ports@freebsd.org
MAN1= pine.1 pico.1 pilot.1
@ -30,6 +30,11 @@ LDAP_PREFIX?= ${LOCALBASE}
BUILD_DEPENDS+= ${LDAP_PREFIX}/lib/libldap.a:${PORTSDIR}/net/ldap
.endif
.if defined(WITH_SSL)
USE_OPENSSL= yes
EXTRA_OPTS= SSL_LINK="-L${OPENSSLLIB} -lssl -lcrypto"
.endif
pre-fetch:
.if !defined(BATCH) && !defined(PACKAGE_BUILDING)
${SH} pkg-install
@ -60,7 +65,7 @@ post-patch:
.endif
do-build:
@(cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} ./build bsf)
@(cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} ./build bsf $(EXTRA_OPTS))
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/bin/pico ${PREFIX}/bin/pico

View File

@ -17,7 +17,7 @@
-LOCLIBS= $(PICODIR)/libpico.a $(CCLIENTDIR)/c-client.a
-LIBS= $(EXTRALIBES) $(LOCLIBS) $(LDAPLIBS) $(STDLIBS) \
- `cat $(CCLIENTDIR)/LDFLAGS`
+STDLIBS= -ltermlib -lpam -L$(PREFIX)/lib -lc-client4
+STDLIBS= -ltermlib -lpam -L$(PREFIX)/lib -lc-client4 $(SSL_LINK)
+LOCLIBS= $(PICODIR)/libpico.a
+LIBS= $(EXTRALIBES) $(LOCLIBS) $(LDAPLIBS) $(STDLIBS)