Subject: Extremely irritating patch that works, and yet doesn't.

From: Sahil Tandon <[email-masked]>
Date: Mon, 26 Jul 2004 23:06:15 -0400

Attached is a patch file, that exists in my ports tree, specifically 
/usr/ports/mail/imap-uw/files.  After running 'make install', the 
binaries are put in place and I am able to connect to the server and 
read mail just fine.

However, there is one portion of the patch that doesn't seem to "make 
it" to the final binary:

| -CREATEPROTO=unixproto
| +CREATEPROTO=mbxproto

Moreover, even though I can verify the patch is "applied" to the Makefile:

| sphinx# grep CREATEPROTO= src/osdep/unix/Makefile
| CREATEPROTO=mbxproto
|          CREATEPROTO=mmdfproto EMPTYPROTO=mmdfproto \
|          CREATEPROTO=mmdfproto EMPTYPROTO=mmdfproto \
|          CREATEPROTO=mmdfproto EMPTYPROTO=mmdfproto \
|          CREATEPROTO=mmdfproto EMPTYPROTO=mmdfproto \
|         echo -DCREATEPROTO=$(CREATEPROTO) -DEMPTYPROTO=$(EMPTYPROTO) \

... it doesn't seem to work, because when I connect to the server again 
via IMAP, and create some new folders, they're all created in the 
traditional UNIX mailbox format, and not in mbx.

FWIW, I'm running FreeBSD-4.10STABLE, and compiling imap-2004 
against/with cclient-2004.  Thanks for your help and suggestions.

Regards,
Sahil
--- src/osdep/unix/Makefile.orig	Thu Apr 29 19:08:48 2004
+++ src/osdep/unix/Makefile	Mon Jul 26 19:44:07 2004
@@ -21,7 +21,7 @@
 # Command line build parameters
 
 EXTRAAUTHENTICATORS=
-EXTRADRIVERS=mbox
+EXTRADRIVERS=
 PASSWDTYPE=std
 SSLTYPE=nopwd
 IP=4
@@ -29,13 +29,13 @@
 
 # Extended flags needed for SSL.  You may need to modify.
 
-SSLDIR=/usr/local/ssl
-SSLCERTS=$(SSLDIR)/certs
+SSLDIR=$(OPENSSLBASE)
+SSLCERTS=$(PREFIX)/certs
 SSLKEYS=$(SSLCERTS)
-SSLINCLUDE=$(SSLDIR)/include
-SSLLIB=$(SSLDIR)/lib
+SSLINCLUDE=$(OPENSSLINC)
+SSLLIB=$(OPENSSLLIB)
 
-SSLCRYPTO=-lcrypto
+SSLCRYPTO=-lcrypto -lcrypt
 
 # Older versions of MIT Kerberos also have a libcrypto.  If so, you may need
 # to use this instead
@@ -48,7 +48,7 @@
 
 SSLCFLAGS= -I$(SSLINCLUDE) -I$(SSLINCLUDE)/openssl\
  -DSSL_CERT_DIRECTORY=\"$(SSLCERTS)\" -DSSL_KEY_DIRECTORY=\"$(SSLKEYS)\"
-SSLLDFLAGS= -L$(SSLLIB) -lssl $(SSLCRYPTO) $(SSLRSA)
+SSLLDFLAGS= # -L$(SSLLIB) -lssl $(SSLCRYPTO) $(SSLRSA)

 # Extended flags needed for non-standard passwd types.  You may need to modify.
@@ -62,7 +62,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
@@ -92,14 +92,14 @@
 # set certain other formats (e.g. mbx and mx) as the EMPTYPROTO since these
 # formats can never be empty files.
 
-CREATEPROTO=unixproto
+CREATEPROTO=mbxproto
 EMPTYPROTO=unixproto

 # Commands possibly overriden by the individual port
 
 ARRC=ar rc
-CC=cc
+CC?=cc
 LN=ln -s
 RANLIB=ranlib
 
@@ -117,7 +117,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
-CFLAGS=-g
+CFLAGS+=$(BASECFLAGS) $(EXTRACFLAGS)
 
 CAT=cat
 MAKE=make
@@ -200,6 +200,15 @@
 	 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 \
@@ -219,8 +228,9 @@
 	 SPOOLDIR=/var \
 	 ACTIVEFILE=/usr/local/news/lib/active \
 	 RSHPATH=/usr/bin/rsh \
-	 BASECFLAGS="-g -O -pipe" \
-	 BASELDFLAGS="-lcrypt"
+	 LOCKPGM=$(PREFIX)/libexec/mlock \
+         BASECFLAGS="-DNFSKLUDGE" \
+         BASELDFLAGS=""
 
 bsi:	# BSD/i386
 	$(BUILD) `$(CAT) SPECIALS` OS=$@ \
@@ -788,7 +798,7 @@
 
 build:	clean once $(ARCHIVE)
 
-all:	$(ARCHIVE)
+all:   onceenv
 
 $(ARCHIVE): $(BINARIES)
 	sh -c '$(RM) $(ARCHIVE) || true'

---

From: Sahil Tandon <[email-masked]>
Date: Tue, 27 Jul 2004 21:02:20 -0400

I wrote:

[...]

> However, there is one portion of the patch that doesn't seem to "make 

[...]

I found the problem.  Since cclient, which was already installed, had 
been compiled with CREATEPROTO=unix, the patch to the imap-uw source 
didn't make a difference.  Things are fine after first patching and 
installing cclient, and then installing imap-uw.

--
Sahil Tandon