From 39c70fc4a86612f868dedb8d7c3e9530595ccb0f Mon Sep 17 00:00:00 2001 From: hubertf Date: Thu, 9 Nov 2000 03:37:26 +0000 Subject: Update to 4.30. Fixes another security hole... Full list of changes: * Configuration flexibility + pine configurations can now be stored remotely on an imap server for access from different locations without the need to configure for each location. + configuration may be split into two parts: generic configuration and exceptional, per-platform configuration. + signatures can now be stored remotely or as part of the pinerc file + for configuration options which are lists, inheritance is supported * New security features + SSL support for Unix Pine (source code only) + SSL enhancements for PC-Pine * Minor rule enhancements + status of a message (New, Deleted, etc.) can now be used as criteria for pattern matching. + "move-only-if-not-deleted" option in filtering to lessen the chance of messages being filtered more than once when running multiple pine sessions. + ability to set arbitrary headers in roles. + news filtering made more efficient. * Basic threaded sorting (Expanded functionality to be added in a future version). * Enhanced MAPI support for PC-Pine * Various other new features and configuration options + alternate-compose-menu + by-replyto for saved-msg-name-rule + check-newmail-when-quitting + continue-tab-without-confirm + expose-hidden-config + expunge-only-manually + incoming-startup-rule additions + literal-signature + mark-for-cc + prefer-plain-text + pruning-rule, for monthly sent-mail renaming and deleting + quell-extra-post-prompt + hidden feature allow-changing-from defaults to on * New command line options: + -p , pinerc can now refer to a remote mailbox which contains the configuration file + -x , is how you override your default pinerc settings with exceptions for a particular platform, may be local or remote + -aux , allows you to tell Pine the local directory to use for auxiliary files when pinerc is remote (PC-Pine only) + -copy_pinerc and -copy_abook options + -v option Bugs that have been addressed in this release include: * Incoming mail with an extremely long From address can cause a buffer overflow on the stack (security) * X-Keywords crash for unix formatted mailboxes * Composer word wrapping needlessly wraps words * New messages appear in zoomed view * "Bad msgno 0" filtering crash * "+" during login doesn't always mean that SSL is being used * news filtering refilters messages that had already been filtered * Goto and Save can't access folders that are readable but not listable * Goto doesn't allow access of folders outside of a Collection List * PC-Pine SSL functionality broken in Windows 2000/Millennium * FromOrTo and To in index-format don't work for newsgroups * Sorting by score doesn't always work * Viewing of very large messages uses more memory than is need * Loss of body for reply to multipart/signed mime messages * Pine crashes when replying to or forwarding messages with certain types of attachments * Brackets are falsely recognized as url characters * Crash when enclosing options in quotes for PC-Pine * Newsgroup posting doesn't allow posting to additional news servers --- mail/pine/Makefile | 23 ++++++++----- mail/pine/files/md5 | 4 +-- mail/pine/files/patch-sum | 11 +++--- mail/pine/patches/patch-aa | 4 +-- mail/pine/patches/patch-ab | 33 ------------------ mail/pine/patches/patch-ac | 12 +++---- mail/pine/patches/patch-ad | 18 ---------- mail/pine/patches/patch-al | 50 +++++++++++++++++++-------- mail/pine/patches/patch-tabkey | 76 ------------------------------------------ mail/pine/pkg/PLIST | 20 ++++++++--- 10 files changed, 79 insertions(+), 172 deletions(-) delete mode 100644 mail/pine/patches/patch-ab delete mode 100644 mail/pine/patches/patch-ad delete mode 100644 mail/pine/patches/patch-tabkey (limited to 'mail') diff --git a/mail/pine/Makefile b/mail/pine/Makefile index e980e94c706..59b29b84e61 100644 --- a/mail/pine/Makefile +++ b/mail/pine/Makefile @@ -1,23 +1,24 @@ -# $NetBSD: Makefile,v 1.38 2000/10/21 22:45:28 wiz Exp $ +# $NetBSD: Makefile,v 1.39 2000/11/09 03:37:26 hubertf Exp $ # FreeBSD Id: Makefile,v 1.21 1997/03/26 02:12:07 ache Exp # -DISTNAME= pine4.21 -PKGNAME= pine-4.21nb1 +DISTNAME= pine4.30 +PKGNAME= pine-4.30 CATEGORIES= mail news MASTER_SITES= ftp://ftp.cac.washington.edu/pine/ \ ftp://ftp.fu-berlin.de/unix/mail/pine/ -MAINTAINER= packages@netbsd.org +MAINTAINER= hubertf@netbsd.org HOMEPAGE= http://www.washington.edu/pine/ # This pkg doesn't build pico or libpico; the pico pkg does that part. -DEPENDS+= pico-3.7:../../editors/pico -DEPENDS+= imap-uw>=4.7c6:../../mail/imap-uw +DEPENDS+= pico-3.8:../../editors/pico +DEPENDS+= imap-uw>=2000:../../mail/imap-uw USE_LIBTOOL= yes CONFIGURE_ENV+= LT=${LIBTOOL} MAKE_ENV+= LT=${LIBTOOL} +#MAKE_ENV+= STRIPFLAG= # debug pre-patch: # Make sure the imap lib that comes with pine4.21 isn't @@ -37,7 +38,6 @@ do-build: do-install: ${LIBTOOL} ${INSTALL_PROGRAM} ${WRKSRC}/pine/pine ${PREFIX}/bin/ - ${LIBTOOL} ${INSTALL_PROGRAM} ${WRKSRC}/pine/abookcpy ${PREFIX}/bin/ ${INSTALL_SCRIPT} ${FILESDIR}/pgpencrypt ${PREFIX}/bin/ ${INSTALL_SCRIPT} ${FILESDIR}/pgpdecode ${PREFIX}/bin/ ${INSTALL_SCRIPT} ${FILESDIR}/pgpsign ${PREFIX}/bin/ @@ -52,8 +52,13 @@ do-install: >${PREFIX}/share/examples/pine/pine.conf ${INSTALL_DATA} ${FILESDIR}/pine.conf.fixed ${PREFIX}/share/examples/pine/ @[ -f ${PREFIX}/etc/pine.conf ] || ${CP} ${PREFIX}/share/examples/pine/pine.conf ${PREFIX}/etc/ - ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/pine - ${INSTALL_DATA} ${WRKSRC}/doc/tech-notes.txt ${PREFIX}/share/doc/pine/ + ${INSTALL_DATA_DIR} ${PREFIX}/share/pine + ${INSTALL_DATA_DIR} ${PREFIX}/share/pine/contrib + ${INSTALL_DATA_DIR} ${PREFIX}/share/pine/contrib/utils + ${INSTALL_DATA} ${WRKSRC}/doc/tech-notes.txt ${PREFIX}/share/pine/ + ${INSTALL_DATA} ${WRKSRC}/contrib/krb5-setup ${PREFIX}/share/pine/contrib + ${INSTALL_DATA} ${WRKSRC}/contrib/ldap-setup ${PREFIX}/share/pine/contrib + ${INSTALL_DATA} ${WRKSRC}/contrib/utils/* ${PREFIX}/share/pine/contrib/utils .include "../../mk/bsd.pkg.mk" .if ${OPSYS} == "SunOS" diff --git a/mail/pine/files/md5 b/mail/pine/files/md5 index c6574d5d455..6d8ecd7acef 100644 --- a/mail/pine/files/md5 +++ b/mail/pine/files/md5 @@ -1,3 +1,3 @@ -$NetBSD: md5,v 1.10 1999/11/22 01:01:51 jwise Exp $ +$NetBSD: md5,v 1.11 2000/11/09 03:37:26 hubertf Exp $ -MD5 (pine4.21.tar.gz) = 9252a061387de806f8aa1ced885d41f6 +MD5 (pine4.30.tar.gz) = 21e16ae355a3c78cbe128876e3e65350 diff --git a/mail/pine/files/patch-sum b/mail/pine/files/patch-sum index a98e83f1b1e..c05773057fc 100644 --- a/mail/pine/files/patch-sum +++ b/mail/pine/files/patch-sum @@ -1,9 +1,6 @@ -$NetBSD: patch-sum,v 1.5 2000/09/19 13:27:01 hubertf Exp $ +$NetBSD: patch-sum,v 1.6 2000/11/09 03:37:26 hubertf Exp $ -MD5 (patch-aa) = cde5388cc742d06c2cbb3c418c03121d -MD5 (patch-ab) = aee9be029c8880cb76b34b3203d53045 -MD5 (patch-ac) = 404610eda02f09cdb32a12d3d6e732ec -MD5 (patch-ad) = 643c9e5beecf2e0525bbacc275326b02 -MD5 (patch-al) = 0ed03614c3e7dbd72dfaa696dba0ced3 +MD5 (patch-aa) = 0b2c172144adb3e45d5bec5efc0d5e17 +MD5 (patch-ac) = 29b39466531eab9ee48de52098ea4526 +MD5 (patch-al) = e079f418def13fb0386bd6faecf113b4 MD5 (patch-ao) = bf069e8f6c0e571c26a3f52fe2781b6b -MD5 (patch-tabkey) = 918d8281bc5049765f27f7308a83fc47 diff --git a/mail/pine/patches/patch-aa b/mail/pine/patches/patch-aa index 7226679d7ac..86716dfd07d 100644 --- a/mail/pine/patches/patch-aa +++ b/mail/pine/patches/patch-aa @@ -1,4 +1,4 @@ -$NetBSD: patch-aa,v 1.8 2000/01/04 16:58:50 bouyer Exp $ +$NetBSD: patch-aa,v 1.9 2000/11/09 03:37:26 hubertf Exp $ --- pine/makefile.gs5.old Thu Aug 27 18:49:57 1998 +++ pine/makefile.gs5 Thu Dec 2 19:03:32 1999 @@ -10,7 +10,7 @@ $NetBSD: patch-aa,v 1.8 2000/01/04 16:58:50 bouyer Exp $ +OPTIMIZE= -O2 PROFILE= # -pg -DEBUG= -g -DDEBUG -+DEBUG= # -g -DDEBUG ++DEBUG= -DDEBUG # -g # XXX crashes on 'c'ompose w/o -DDEBUG CCLIENTDIR= ../c-client PICODIR= ../pico diff --git a/mail/pine/patches/patch-ab b/mail/pine/patches/patch-ab deleted file mode 100644 index eb90bd240be..00000000000 --- a/mail/pine/patches/patch-ab +++ /dev/null @@ -1,33 +0,0 @@ -$NetBSD: patch-ab,v 1.5 1999/11/11 17:40:18 tv Exp $ - ---- pine/abookcpy.c.orig Wed Jun 23 15:15:26 1999 -+++ pine/abookcpy.c Thu Nov 11 12:00:12 1999 -@@ -48,6 +48,7 @@ - void trim_addrbook_data PROTO((MAILSTREAM *, int)); - void write_fake_headers PROTO((char *, char *, char *)); - char *err_desc PROTO((int)); -+#define err_desc(err) strerror(err) - - int noshow_error = 0; - -@@ -416,20 +417,6 @@ - rfc822_header(where+strlen(where), fake_env, fake_body); - mail_free_envelope(&fake_env); - mail_free_body(&fake_body); --} -- -- --extern char *sys_errlist[]; -- --char * --err_desc(err) -- int err; --{ -- static char buffer[50]; -- -- strcpy(buffer, sys_errlist[err]); -- -- return((char *)buffer); - } - - diff --git a/mail/pine/patches/patch-ac b/mail/pine/patches/patch-ac index 7414314ba40..e5ced870d7f 100644 --- a/mail/pine/patches/patch-ac +++ b/mail/pine/patches/patch-ac @@ -1,4 +1,4 @@ -$NetBSD: patch-ac,v 1.8 2000/09/19 13:27:01 hubertf Exp $ +$NetBSD: patch-ac,v 1.9 2000/11/09 03:37:26 hubertf Exp $ --- pine/makefile.neb.orig Thu Aug 27 18:50:02 1998 +++ pine/makefile.neb @@ -13,7 +13,7 @@ $NetBSD: patch-ac,v 1.8 2000/09/19 13:27:01 hubertf Exp $ +.endif PROFILE= # -pg -DEBUG= -g -DDEBUG -+DEBUG= # -g -DDEBUG ++DEBUG= -DDEBUG # -g -DDEBUG # crashes on 'c'ompose w/o -DDEBUG -CCLIENTDIR= ../c-client +CCLIENTDIR= ${LOCALBASE} @@ -41,7 +41,7 @@ $NetBSD: patch-ac,v 1.8 2000/09/19 13:27:01 hubertf Exp $ 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 \ -@@ -79,8 +83,10 @@ +@@ -79,8 +83,8 @@ $(PICODIR)/headers.h $(PICODIR)/estruct.h \ $(PICODIR)/edef.h $(PICODIR)/efunc.h \ $(PICODIR)/pico.h $(PICODIR)/os.h \ @@ -49,12 +49,10 @@ $NetBSD: patch-ac,v 1.8 2000/09/19 13:27:01 hubertf Exp $ - $(CCLIENTDIR)/rfc822.h $(CCLIENTDIR)/misc.h + $(CCLIENTINC)/mail.h $(CCLIENTINC)/osdep.h \ + $(CCLIENTINC)/rfc822.h $(CCLIENTINC)/misc.h -+ -+all: pine abookcpy pine: $(OFILES) $(LOCLIBS) echo "char datestamp[]="\"`date`\"";" > date.c -@@ -88,7 +94,7 @@ +@@ -88,7 +92,7 @@ $(CC) $(LDFLAGS) $(CFLAGS) -o pine $(OFILES) date.c $(LIBS) abookcpy: abookcpy.o $(LOCLIBES) @@ -63,7 +61,7 @@ $NetBSD: patch-ac,v 1.8 2000/09/19 13:27:01 hubertf Exp $ pine-use: pine-use.c $(CC) -o pine-use pine-use.c -@@ -107,8 +113,8 @@ +@@ -107,8 +111,8 @@ $(OFILES): $(HFILES) addrbook.o adrbkcmd.o adrbklib.o bldaddr.o takeaddr.o: adrbklib.h diff --git a/mail/pine/patches/patch-ad b/mail/pine/patches/patch-ad deleted file mode 100644 index 575d74a5889..00000000000 --- a/mail/pine/patches/patch-ad +++ /dev/null @@ -1,18 +0,0 @@ -$NetBSD: patch-ad,v 1.6 2000/09/19 13:27:01 hubertf Exp $ - ---- pine/init.c.orig Tue Sep 19 14:41:50 2000 -+++ pine/init.c -@@ -2043,9 +2043,13 @@ - - #ifndef _WINDOWS - if(F_ON(F_OLD_UNIX_DRIVER_WRITE,ps_global)){ -+#if 0 -+ /* It seems imapuw-2000.rc6 doesn't know about this any more. - HF -+ */ - extern int unix_old_algorithm; - - unix_old_algorithm = TRUE; -+#endif - } - - if(F_ON(F_QUELL_BEZERK_TIMEZONE,ps_global)) diff --git a/mail/pine/patches/patch-al b/mail/pine/patches/patch-al index fe263ad6c81..487a6342c83 100644 --- a/mail/pine/patches/patch-al +++ b/mail/pine/patches/patch-al @@ -1,18 +1,18 @@ -$NetBSD: patch-al,v 1.6 2000/09/19 13:27:01 hubertf Exp $ +$NetBSD: patch-al,v 1.7 2000/11/09 03:37:27 hubertf Exp $ ---- build.orig Mon Nov 15 23:16:25 1999 +--- build.orig Tue Aug 1 00:28:01 2000 +++ build -@@ -180,7 +180,7 @@ +@@ -198,7 +198,7 @@ mnt) makeargs="CC=gcc $makeargs" ;; bs3) makeargs="CC=shlicc $makeargs" ;; lyn) [ -f /CYGNUS.bash ] && . /CYGNUS.bash; makeargs="CC=gcc $makeargs" ;; - *) makeargs="CC=cc $makeargs" ;; -+ *) makeargs="CC=${LT}\ cc $makeargs" ;; ++ *) makeargs="CC=${LT}\ cc\ -g $makeargs" ;; esac fi -@@ -277,23 +277,17 @@ - esac +@@ -303,23 +303,28 @@ + echo "Including SSL functionality" fi - if [ -s c-client ] ; then rm -f c-client ; fi @@ -22,9 +22,9 @@ $NetBSD: patch-al,v 1.6 2000/09/19 13:27:01 hubertf Exp $ - if [ -s imapd ] ; then rm -f imapd ; fi - ln -s imap/imapd imapd - echo "Making c-client library, mtest and imapd" -- eval echo make "$makeargs" "$K1" "$K2" $ccltarg +- eval echo make "$makeargs" "$SSL" "$K1" "$K2" $ccltarg - cd $PHOME/imap -- eval make "$makeargs" "$K1" "$K2" $ccltarg +- eval make "$makeargs" "$SSL" "$K1" "$K2" $ccltarg - echo '' - - echo "Making Pico and Pilot" @@ -32,21 +32,32 @@ $NetBSD: patch-al,v 1.6 2000/09/19 13:27:01 hubertf Exp $ - eval echo make "$makeargs" -f makefile.$picotarg - eval make "$makeargs" -f makefile.$picotarg - echo '' -+# We use the ima-uw pkg's stuff for that, see -+# http://www.securityfocus.com/advisories/2646: ++# ++# We use the imap-uw pkg's stuff for that, see ++# http://www.securityfocus.com/advisories/2646 and ++# http://www.securityfocus.com/bid/1709: ++# +# 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 imapd ] ; then rm -f imapd ; fi ++# ln -s imap/imapd imapd +# echo "Making c-client library, mtest and imapd" -+# eval echo make "$makeargs" "$K1" "$K2" $ccltarg ++# eval echo make "$makeargs" "$SSL" "$K1" "$K2" $ccltarg +# cd $PHOME/imap -+# eval make "$makeargs" "$K1" "$K2" $ccltarg ++# eval make "$makeargs" "$SSL" "$K1" "$K2" $ccltarg ++# echo '' ++ ++# echo "Making Pico and Pilot" ++# cd $PHOME/pico ++# eval echo make "$makeargs" -f makefile.$picotarg ++# eval make "$makeargs" -f makefile.$picotarg +# echo '' echo "Making Pine". cd $PHOME/pine -@@ -310,8 +304,6 @@ +@@ -336,8 +341,6 @@ if [ -s ../pico/pilot ] ; then ln ../pico/pilot pilot ; fi cd $PHOME echo '' @@ -55,3 +66,16 @@ $NetBSD: patch-al,v 1.6 2000/09/19 13:27:01 hubertf Exp $ case $maketarg in mnt) echo "Fixing stacksizes ..." fixstk 64K bin/pine bin/pico bin/imapd bin/mtest bin/pilot +@@ -347,9 +350,9 @@ + + + clean) # This only sort of works +- echo "Cleaning c-client and imapd" +- cd $PHOME/imap +- make clean ++# echo "Cleaning c-client and imapd" ++# cd $PHOME/imap ++# make clean + echo "Cleaning Pine" + cd $PHOME/pine + make -f makefile.ult clean diff --git a/mail/pine/patches/patch-tabkey b/mail/pine/patches/patch-tabkey deleted file mode 100644 index 1692f277304..00000000000 --- a/mail/pine/patches/patch-tabkey +++ /dev/null @@ -1,76 +0,0 @@ -$NetBSD: patch-tabkey,v 1.5 1999/11/11 17:40:18 tv Exp $ - ---- pine/mailcmd.c.orig Mon Oct 11 18:13:50 1999 -+++ pine/mailcmd.c Thu Nov 11 12:03:40 1999 -@@ -320,9 +320,7 @@ - } - else{ - prompt[0] = '\0'; -- if(!state->nr_mode -- && (IS_NEWS(stream) -- || (state->context_current->use & CNTXT_INCMNG))){ -+ if(!state->nr_mode){ - char nextfolder[MAXPATH]; - - strcpy(nextfolder, state->cur_folder); -@@ -465,14 +463,7 @@ - char ret = 'n'; - int in_inbox = !strucmp(state->cur_folder,state->inbox_name); - -- if(!state->nr_mode && state->context_current -- && ((NEWS_TEST(state->context_current) -- && context_isambig(state->cur_folder)) -- || ((state->context_current->use & CNTXT_INCMNG) -- && (in_inbox -- || folder_index(state->cur_folder, -- state->context_current, -- FI_FOLDER) >= 0)))){ -+ if(!state->nr_mode && state->context_current){ - char nextfolder[MAXPATH]; - MAILSTREAM *nextstream = NULL; - long recent_cnt; -@@ -490,8 +481,8 @@ - }; - - sprintf(prompt, "No more %ss. Return to \"%s\"? ", -- (state->context_current->use&CNTXT_INCMNG) -- ? "incoming folder" : "news group", -+ NEWS_TEST(state->context_current) -+ ? "news group" : "folder", - state->inbox_name); - - ret = radio_buttons(prompt, -FOOTER_ROWS(state), -@@ -512,15 +503,15 @@ - } - else - q_status_message1(SM_ORDER, 0, 2, "No more %ss", -- (state->context_current->use&CNTXT_INCMNG) -- ? "incoming folder" : "news group"); -+ NEWS_TEST(state->context_current) -+ ? "news group" : "folder"); - - break; - } - - sprintf(prompt, "View next %s \"%s\" (%s recent)? ", -- (state->context_current->use & CNTXT_INCMNG) -- ? "Incoming folder" : "news group", -+ NEWS_TEST(state->context_current) -+ ? "news group" : "folder", - nextfolder, - recent_cnt ? long2string(recent_cnt) : "some"); - -@@ -1350,12 +1341,9 @@ - } - - if(!state->nr_mode -- && ((IS_NEWS(state->mail_stream) -- || ((state->context_current->use & CNTXT_INCMNG) -- && context_isambig(state->cur_folder))) - && (msgno == next_sorted_flagged(F_UNDEL|F_UNSEEN, - state->mail_stream, -- msgno, &opts)))){ -+ msgno, &opts))){ - char nextfolder[MAXPATH]; - - strcpy(nextfolder, state->cur_folder); diff --git a/mail/pine/pkg/PLIST b/mail/pine/pkg/PLIST index 3953d2291dd..b530282388d 100644 --- a/mail/pine/pkg/PLIST +++ b/mail/pine/pkg/PLIST @@ -1,14 +1,24 @@ -@comment $NetBSD: PLIST,v 1.8 1999/11/11 17:40:18 tv Exp $ -bin/abookcpy -bin/pine +@comment $NetBSD: PLIST,v 1.9 2000/11/09 03:37:27 hubertf Exp $ bin/pgpdecode bin/pgpencrypt bin/pgpsign +bin/pine man/man1/pine.1 -share/doc/pine/tech-notes.txt +share/pine/tech-notes.txt +share/pine/contrib/krb5-setup +share/pine/contrib/ldap-setup +share/pine/contrib/utils/ansiprt.c +share/pine/contrib/utils/brk2pine.sh +share/pine/contrib/utils/mailtrfc.sh +share/pine/contrib/utils/pwd2pine +share/pine/contrib/utils/sendit.sh +share/pine/contrib/utils/sendtoall +share/pine/contrib/utils/txtcc.sh share/examples/pine/dot.pinerc.pgp share/examples/pine/pine.conf share/examples/pine/pine.conf.fixed @exec if [ ! -f %D/etc/pine.conf ]; then cp -p %D/share/examples/pine/pine.conf %D/etc/; fi -@dirrm share/doc/pine +@dirrm share/pine/contrib/utils +@dirrm share/pine/contrib +@dirrm share/pine @dirrm share/examples/pine -- cgit v1.2.3