Upgrade to 4.53, the latest version from our friends at UW. Several

bugs have been fixed, mostly in new options. Users of Pine are
encouraged to upgrade.

In addition to the version upgrade, I've overhauled the port. The most
significant change is that I'm now using the include version of the
c-client library, as opposed to the shared version used by the IMAP
port. The main reason for this is to stay current with the Pine
developer's view of the program. An additional benefit is that this
change will allow me to update the Pine port more rapidly, without
having to wait for the shared cclient port.

In order to avoid conflicts with the IMAP server port, I am now
compiling the pine binary static. On my system, this actually gives
the pine binary a smaller memory footprint. I've also adopted the
same option semantics that are currently in use for cclient. Namely
that WITH_SSL is now the default.

The other change of note is that I'm now installing the rpdump and
rpload binaries that let you save and load a remote pine configuration.

The Makefile has also been cleaned up, somewhat simplified, and made
more generic. The basic functionality should be the same.
This commit is contained in:
Doug Barton 2003-01-22 15:46:11 +00:00
parent 738a2ee53a
commit 395c2606a1
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=73793
15 changed files with 62 additions and 330 deletions

View file

@ -6,15 +6,13 @@
#
PORTNAME= pine
PORTVERSION= 4.51
PORTVERSION= 4.53
CATEGORIES= mail news
MASTER_SITES= ftp://ftp.cac.washington.edu/pine/
DISTNAME= ${PORTNAME}${PORTVERSION}
MAINTAINER= DougB@FreeBSD.org
LIB_DEPENDS= c-client4.8:${PORTSDIR}/mail/cclient
# Define "WITH_LDAP" to include ldap support.
# If the ldap port is installed somewhere other than /usr/local, define
# LDAP_PREFIX as well.
@ -24,36 +22,37 @@ LDAP_PREFIX?= ${LOCALBASE}
BUILD_DEPENDS+= ${LDAP_PREFIX}/lib/libldap.a:${PORTSDIR}/net/openldap
.endif
.if defined(WITH_SSL)
.if defined(WITHOUT_SSL)
MAKE_ARGS+= SSLTYPE=none
.else
USE_OPENSSL= yes
EXTRA_OPTS= SSL_LINK="-L${OPENSSLLIB} -lssl -lcrypto"
EXTRA_OPTS= SSLINCLUDE=${OPENSSLINC} SSLLIB=${OPENSSLLIB}
.if defined(WITH_SSL_AND_PLAINTEXT)
EXTRA_OPTS+= SSLTYPE=unix
.else
EXTRA_OPTS+= SSLTYPE=unix.nopwd
.endif
.endif
MAN1= pine.1 pico.1 pilot.1
MAN1= pine.1 pico.1 pilot.1 rpdump.1 rpload.1
pre-fetch:
.if !defined(BATCH) && !defined(PACKAGE_BUILDING)
${SH} pkg-install
${SH} pkg-libwarning
.endif
post-patch:
@for i in ${WRKSRC}/doc/pine.1 \
${WRKSRC}/pine/init.c \
${WRKSRC}/pine/pine.hlp \
${WRKSRC}/pine/mailcap.c \
${WRKSRC}/pine/osdep/os-bsf.h ; do \
${MV} $$i $$i.sed ; \
${SED} -e "s:@@PREFIX@@:${PREFIX}:g" \
$$i.sed >$$i ; \
${RM} $$i.sed ; \
done
.for file in doc/pine.1 pine/init.c pine/pine.hlp pine/mailcap.c \
pine/osdep/os-bsf.h
@${CP} ${WRKSRC}/${file} ${WRKSRC}/${file}.presed
@${SED} -e "s:@@PREFIX@@:${PREFIX}:g" ${WRKSRC}/${file}.presed > \
${WRKSRC}/${file}
.endfor
@for i in ${WRKSRC}/doc/tech-notes.txt \
${WRKSRC}/doc/tech-notes/*.html ; do \
${MV} $$i $$i.sed ; \
${CP} $$i $$i.presed ; \
${SED} -e "s:/usr/local/lib/:${PREFIX}/etc/:g" \
$$i.sed >$$i ; \
${RM} $$i.sed ; \
$$i.presed > $$i ; \
done
.if defined(WITH_LDAP)
${MKDIR} ${WRKSRC}/ldap
@ -65,34 +64,27 @@ do-build:
@(cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} ./build bsf ${EXTRA_OPTS})
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/bin/pico ${PREFIX}/bin/pico
${INSTALL_PROGRAM} ${WRKSRC}/bin/pilot ${PREFIX}/bin/pilot
${INSTALL_PROGRAM} ${WRKSRC}/bin/pine ${PREFIX}/bin/pine
${SED} -e 's,@@PREFIX@@,${PREFIX},g' \
< ${FILESDIR}/pgpdecode > ${WRKSRC}/bin/pgpdecode
${SED} -e 's,@@PREFIX@@,${PREFIX},g' \
< ${FILESDIR}/pgpencrypt > ${WRKSRC}/bin/pgpencrypt
${SED} -e 's,@@PREFIX@@,${PREFIX},g' \
< ${FILESDIR}/pgpsign > ${WRKSRC}/bin/pgpsign
${INSTALL_SCRIPT} ${WRKSRC}/bin/pgpencrypt ${PREFIX}/bin/pgpencrypt
${INSTALL_SCRIPT} ${WRKSRC}/bin/pgpdecode ${PREFIX}/bin/pgpdecode
${INSTALL_SCRIPT} ${WRKSRC}/bin/pgpsign ${PREFIX}/bin/pgpsign
${SED} -e 's,@@PREFIX@@,${PREFIX},g' \
< ${FILESDIR}/dot.pinerc.pgp.sample \
.for program in ${MAN1}
${INSTALL_PROGRAM} ${WRKSRC}/bin/${program:R} ${PREFIX}/bin
.endfor
.for script in pgpdecode pgpencrypt pgpsign
${SED} -e 's,@@PREFIX@@,${PREFIX},g' ${FILESDIR}/${script} > \
${WRKSRC}/bin/${script}
${INSTALL_SCRIPT} ${WRKSRC}/bin/${script} ${PREFIX}/bin
.endfor
${SED} -e 's,@@PREFIX@@,${PREFIX},g' ${FILESDIR}/dot.pinerc.pgp.sample \
> ${WRKSRC}/dot.pinerc.pgp.sample
${INSTALL_DATA} ${WRKSRC}/dot.pinerc.pgp.sample \
${PREFIX}/etc/dot.pinerc.pgp.sample
${INSTALL_MAN} ${WRKSRC}/doc/pico.1 ${PREFIX}/man/man1/pico.1
${INSTALL_MAN} ${WRKSRC}/doc/pilot.1 ${PREFIX}/man/man1/pilot.1
${INSTALL_MAN} ${WRKSRC}/doc/pine.1 ${PREFIX}/man/man1/pine.1
${PREFIX}/etc/dot.pinerc.pgp.sample
.for manpage in ${MAN1}
${INSTALL_MAN} ${WRKSRC}/doc/${manpage} ${PREFIX}/man/man1
.endfor
.if !defined(NOPORTDOCS)
${INSTALL} -d -o ${SHAREOWN} -g ${SHAREGRP} \
${PREFIX}/share/doc/pine \
${PREFIX}/share/doc/pine/tech-notes
${INSTALL_DATA} ${WRKSRC}/doc/brochure.txt ${PREFIX}/share/doc/pine
${INSTALL_DATA} ${WRKSRC}/doc/tech-notes.txt ${PREFIX}/share/doc/pine
${INSTALL_DATA} ${WRKSRC}/doc/tech-notes/*.html \
${PREFIX}/share/doc/pine/tech-notes/
${INSTALL} -d -o ${SHAREOWN} -g ${SHAREGRP} ${DOCSDIR} \
${DOCSDIR}/tech-notes
${INSTALL_DATA} ${WRKSRC}/doc/brochure.txt ${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/doc/tech-notes.txt ${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/doc/tech-notes/*.html ${DOCSDIR}/tech-notes
.endif
post-install:

View file

@ -1 +1 @@
MD5 (pine4.51.tar.gz) = 4ce7c7776b56177852975a2ad19f7202
MD5 (pine4.53.tar.gz) = 17d2ae323d6012e69c33cf0168dff59b

View file

@ -1,25 +1,6 @@
*** pine/send.c.Dist Mon Aug 27 10:54:33 2001
--- pine/send.c Fri Sep 28 00:19:47 2001
***************
*** 47,54 ****
====*/
#include "headers.h"
! #include "../c-client/smtp.h"
! #include "../c-client/nntp.h"
#ifndef TCPSTREAM
--- 47,54 ----
====*/
#include "headers.h"
! #include "c-client/smtp.h"
! #include "c-client/nntp.h"
#ifndef TCPSTREAM
***************
*** 7689,7701 ****
body->subtype = cpystr("octet-stream");
}

View file

@ -1,108 +1,11 @@
*** build.orig Mon Dec 9 09:54:38 2002
--- build Mon Dec 16 02:16:44 2002
***************
*** 362,424 ****
echo "Including SSL functionality"
fi
- if [ -s c-client ] ; then rm -f c-client ; fi
- ln -s imap/c-client c-client
- if [ -s mtest ] ; then rm -f mtest ; fi
- ln -s imap/mtest mtest
- if [ -s mailutil ] ; then rm -f mailutil ; fi
- ln -s imap/mailutil mailutil
- if [ -s imapd ] ; then rm -f imapd ; fi
- ln -s imap/imapd imapd
- if [ -s ipopd ] ; then rm -f ipopd ; fi
- ln -s imap/ipopd ipopd
- echo "Making c-client library, imapd, and ipopd"
- echo $S1 $S2 $S3 $S4 $K1 > imap/SPECIALS
- cd "$PHOME/imap"
- # This "touch" tells the IMAP make not to give any warnings about IESG compliance.
- if [ "$NOSSL" = "1" -o "$SSL" != "none" ] ; then touch ssl$SSL ; fi
- if [ "$NOSSL" != "1" -a "$SSL" = "none" -a ! -f sslnone ]
- then
- echo "+-----------------------------------------------------------+"
- echo "| It appears that you do not have OpenSSL or equivalent |"
- echo "| installed on this system. |"
- echo "| |"
- echo "| Building PINE without SSL support will possibly introduce |"
- echo "| problems when communicating with IMAP, POP3, or SMTP |"
- echo "| servers that require TLS or SSL authentication. |"
- echo "| In addition, your password may be vulnerable to a |"
- echo "| snooping attack since it may be sent over the network |"
- echo "| unencrypted. |"
- echo "+-----------------------------------------------------------+"
- echo ""
- echo "Do you want to continue this build anyway? Type y or n please:"
- read ans
- case "$ans" in
- y) echo "Building without SSL ..."
- touch sslnone
- ;;
-
- *) echo "Terminating build"
- exit 1
- ;;
- esac
- fi
- eval echo eval make "$makeargs" "SSLTYPE=$SSL" "SPECIALS=`cat SPECIALS`" "$K2" $ccltarg
- eval make "$makeargs" "SSLTYPE=$SSL" "SPECIALS=`cat SPECIALS`" "$K2" $ccltarg
- rc=$?
- if [ $rc != "0" ]
- then
- echo "+---------------------------------------------+"
- echo "| Problems building c-client |"
- echo "| |"
- echo "| Please check the output above for a |"
- echo "| possible explanation for this failure |"
- echo "+---------------------------------------------+"
- echo ""
- exit $rc
- fi
- echo ''
-
echo "Making Pico and Pilot"
cd "$PHOME/pico"
eval echo make "$makeargs" -f makefile.$picotarg
--- 362,367 ----
***************
*** 450,456 ****
cd "$PHOME"
echo ''
echo "Links to executables are in bin directory:"
! size bin/pine bin/mtest bin/imapd bin/pico bin/pilot bin/rpdump bin/rpload bin/mailutil bin/ipop2d bin/ipop3d
case $maketarg in
mnt) echo "Fixing stacksizes ..."
fixstk 64K bin/pine bin/pico bin/imapd bin/mtest bin/pilot
--- 393,399 ----
cd "$PHOME"
echo ''
echo "Links to executables are in bin directory:"
! size bin/pine bin/pico bin/pilot
case $maketarg in
mnt) echo "Fixing stacksizes ..."
fixstk 64K bin/pine bin/pico bin/imapd bin/mtest bin/pilot
***************
*** 484,493 ****
rm -f sslnopwd sslunix.nopwd sslsco.nopwd sslunix sslsco sslnone
echo "Cleaning Pine"
cd "$PHOME/pine"
! make -f makefile.ult clean
echo "Cleaning pico"
cd "$PHOME/pico"
! make $makeargs -f makefile.ult clean
echo "Done"
cd "$PHOME"
;;
--- 427,436 ----
rm -f sslnopwd sslunix.nopwd sslsco.nopwd sslunix sslsco sslnone
echo "Cleaning Pine"
cd "$PHOME/pine"
! make -f makefile.bsf clean
echo "Cleaning pico"
cd "$PHOME/pico"
! make $makeargs -f makefile.bsf clean
echo "Done"
cd "$PHOME"
;;
--- build.orig Mon Dec 9 09:54:38 2002
+++ build Thu Jan 16 00:42:58 2003
@@ -450,7 +450,7 @@
cd "$PHOME"
echo ''
echo "Links to executables are in bin directory:"
- size bin/pine bin/mtest bin/imapd bin/pico bin/pilot bin/rpdump bin/rpload bin/mailutil bin/ipop2d bin/ipop3d
+ size bin/pine bin/pico bin/pilot bin/rpdump bin/rpload
case $maketarg in
mnt) echo "Fixing stacksizes ..."
fixstk 64K bin/pine bin/pico bin/imapd bin/mtest bin/pilot

View file

@ -1,47 +1,21 @@
*** pine/makefile.bsf.orig Tue Sep 10 14:39:21 2002
--- pine/makefile.bsf Tue Nov 26 03:26:41 2002
--- pine/makefile.bsf Wed Jan 15 23:20:51 2003
***************
*** 50,56 ****
PROFILE= # -pg
DEBUG= -g -DDEBUG -DDEBUGJOURNAL
*** 67,74 ****
`cat $(CCLIENTDIR)/LDFLAGS`
! CCLIENTDIR= ../c-client
PICODIR= ../pico
# Only need to uncomment next two lines if you run make from this directory
--- 50,56 ----
PROFILE= # -pg
DEBUG= -g -DDEBUG -DDEBUGJOURNAL
! CCLIENTDIR= $(PREFIX)/include/c-client
PICODIR= ../pico
# Only need to uncomment next two lines if you run make from this directory
***************
*** 61,73 ****
LDAPOFILES= addrbook.o adrbkcmd.o args.o bldaddr.o init.o \
mailview.o other.o pine.o strings.o takeaddr.o
! STDLIBS= -ltermlib
! LOCLIBS= $(PICODIR)/libpico.a $(CCLIENTDIR)/c-client.a
! LIBS= $(LOCLIBS) $(LDAPLIBS) $(STDLIBS) \
! `cat $(CCLIENTDIR)/LDFLAGS`
! STDCFLAGS= -DBSDI -DSYSTYPE=\"BSF\" -DMOUSE
STDCFLAGS= -DBSDI -DSYSTYPE=\"BSF\" -DMOUSE
! CFLAGS= $(OPTIMIZE) $(PROFILE) $(DEBUG) $(EXTRACFLAGS) $(LDAPCFLAGS) \
$(STDCFLAGS)
! $(STDCFLAGS)
OFILES= addrbook.o adrbkcmd.o adrbklib.o args.o bldaddr.o context.o filter.o \
--- 61,72 ----
LDAPOFILES= addrbook.o adrbkcmd.o args.o bldaddr.o init.o \
mailview.o other.o pine.o strings.o takeaddr.o
folder.o help.o helptext.o imap.o init.o mailcap.o mailcmd.o \
--- 67,74 ----
`cat $(CCLIENTDIR)/LDFLAGS`
! STDLIBS= -ltermlib -lpam -L$(PREFIX)/lib -lc-client4 $(SSL_LINK)
! LOCLIBS= $(PICODIR)/libpico.a
! LIBS= $(EXTRALIBES) $(LOCLIBS) $(LDAPLIBS) $(STDLIBS)
! STDCFLAGS= -DBSDI -DSYSTYPE=\"BSF\" -DMOUSE -I/usr/local/include -I$(PREFIX)/include/c-client
STDCFLAGS= -DBSDI -DSYSTYPE=\"BSF\" -DMOUSE
! CFLAGS+= $(OPTIMIZE) $(PROFILE) $(DEBUG) $(EXTRACFLAGS) $(LDAPCFLAGS) \
$(STDCFLAGS)
! $(STDCFLAGS) -static
OFILES= addrbook.o adrbkcmd.o adrbklib.o args.o bldaddr.o context.o filter.o \
folder.o help.o helptext.o imap.o init.o mailcap.o mailcmd.o \

View file

@ -1,18 +0,0 @@
--- pine/headers.h.orig Tue Feb 9 14:53:20 1999
+++ pine/headers.h Wed Jul 5 21:57:02 2000
@@ -59,12 +59,12 @@
#include "../pico/headers.h"
-#include "../c-client/mail.h"
+#include "c-client/mail.h"
#include "os.h"
-#include "../c-client/rfc822.h"
-#include "../c-client/misc.h"
+#include "c-client/rfc822.h"
+#include "c-client/misc.h"
#ifdef ENABLE_LDAP

View file

@ -1,22 +0,0 @@
--- pine/osdep/os-bsf.h.orig Wed Oct 7 14:51:40 1998
+++ pine/osdep/os-bsf.h Wed Jul 5 22:03:54 2000
@@ -40,7 +40,7 @@
#ifndef _OS_INCLUDED
#define _OS_INCLUDED
-#include "../c-client/osdep.h"
+#include "c-client/osdep.h"
/*----------------------------------------------------------------------
--- pine/mailindx.c.orig Wed Jul 5 22:19:38 2000
+++ pine/mailindx.c Wed Jul 5 22:19:49 2000
@@ -50,7 +50,7 @@
====*/
#include "headers.h"
-#include "../c-client/imap4r1.h"
+#include "c-client/imap4r1.h"
/*
* Some common Command Bindings

View file

@ -1,14 +1,5 @@
--- pine/init.c.orig Wed Nov 29 09:57:56 2000
+++ pine/init.c Mon Dec 18 02:40:53 2000
@@ -65,7 +65,7 @@
#include "headers.h"
-#include "../c-client/imap4r1.h" /* for LEVELSTATUS() */
+#include "c-client/imap4r1.h" /* for LEVELSTATUS() */
typedef enum {Sapling, Seedling, Seasoned} FeatureLevel;
@@ -370,7 +370,7 @@
/*----------------------------------------------------------------------

View file

@ -1,11 +0,0 @@
--- pine/mailcmd.c.orig Mon Dec 18 02:48:49 2000
+++ pine/mailcmd.c Mon Dec 18 02:49:08 2000
@@ -51,7 +51,7 @@
====*/
#include "headers.h"
-#include "../c-client/imap4r1.h"
+#include "c-client/imap4r1.h"
/*

View file

@ -1,20 +0,0 @@
--- pine/pine.c.orig Tue Aug 7 15:52:00 2001
+++ pine/pine.c Fri Sep 28 00:51:54 2001
@@ -40,7 +40,7 @@
----------------------------------------------------------------------*/
#include "headers.h"
-#include "../c-client/imap4r1.h"
+#include "c-client/imap4r1.h"
/*
@@ -361,7 +361,7 @@
#endif
/*------- Set up c-client drivers -------*/
-#include "../c-client/linkage.c"
+#include "c-client/linkage.c"
/*
* Lookups of long login names which don't exist are very slow in aix.
* This would normally get set in system-wide config if not needed.

View file

@ -1,11 +0,0 @@
--- pine/rpload.c.Dist Thu Jul 26 16:21:57 2001
+++ pine/rpload.c Fri Sep 28 01:40:12 2001
@@ -117,7 +117,7 @@
char *local = NULL, *remote = NULL, *special_hdr = NULL;
RemoteType rt, type = NotSet;
-#include "../c-client/linkage.c"
+#include "c-client/linkage.c"
if(parse_args(argc, argv, &force, &trimsize, &local, &remote, &type)){
fprintf(stderr, ustr, argv[0]);

View file

@ -1,11 +0,0 @@
--- pine/rpdump.c.Dist Mon Jul 30 11:21:19 2001
+++ pine/rpdump.c Fri Sep 28 01:46:43 2001
@@ -114,7 +114,7 @@
RemoteType rtype;
unsigned long i;
-#include "../c-client/linkage.c"
+#include "c-client/linkage.c"
if(parse_args(argc, argv, &force, &local, &remote)){
fprintf(stderr, ustr, argv[0]);

View file

@ -1,11 +0,0 @@
--- pine/strings.c.Dist Wed Nov 20 10:19:45 2002
+++ pine/strings.c Tue Nov 26 03:23:21 2002
@@ -81,7 +81,7 @@
====*/
#include "headers.h"
-#include "../c-client/utf8.h"
+#include "utf8.h"
typedef struct role_args {
char *ourcharset;

View file

@ -1,7 +0,0 @@
#!/bin/sh
if [ "$2" = "POST-INSTALL" -o -n "${PACKAGE_BUILDING}" ]; then
exit 0
fi
/usr/bin/dialog --msgbox "This port requires an up to date cclient library. Your best chance of success is to pkg_delete cclient, then do: make clean && make install in this directory. Include whatever compile options you desire in the make install step, such as -DWITH_SSL. The important factor is that the cclient library and this program be compiled with the same options." 12 70 || /usr/bin/false

View file

@ -7,6 +7,8 @@ bin/pine
bin/pgpencrypt
bin/pgpdecode
bin/pgpsign
bin/rpdump
bin/rpload
etc/dot.pinerc.pgp.sample
@exec %D/bin/pine -P %D/etc/pine.conf -conf >%D/etc/pine.conf.tmp
@exec /bin/mv %D/etc/pine.conf.tmp %D/etc/pine.conf