Subject: Re: Problem building emacs trunk on Fedora 21 x86_64
From: Paul Eggert <[email-masked]>
To: George R Goffe <[email-masked]>
Cc: [email-masked]
Date: Sun, 12 Apr 2015 15:01:59 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

Thanks for reporting the bug.  It looks like you ran the 'configure' script with 
the argument '--with-mmdf'.  This doesn't work on Fedora 21, and as far as I 
know doesn't work on any currently-supported Emacs platform.  Support for 
MMDF-based MTAs was removed from GNU mailutils and related software years ago. 
I expect we should remove it from Emacs too, as it's causing configuration-time 
trouble.  I installed the attached patch, which should fix the problem, and am 
marking this bug as done.
From 7ac684766a4923966eb3c271bf018a7bf4ab0b0d Mon Sep 17 00:00:00 2001
From: Paul Eggert <[email-masked]>
Date: Sun, 12 Apr 2015 14:55:38 -0700
Subject: [PATCH] Remove configure's --with-mmdf option

* configure.ac (MAIL_USE_MMDF): Remove.
* etc/NEWS: Document this.
* lib-src/movemail.c: Assume MAIL_USE_MMDF is not defined.
Fixes: bug#20308
---
 configure.ac       |  5 -----
 etc/NEWS           |  9 ++++++++-
 lib-src/movemail.c | 27 ++++-----------------------
 3 files changed, 12 insertions(+), 29 deletions(-)

diff --git a/configure.ac b/configure.ac
index d692530..858cf78 100644
--- a/configure.ac
+++ b/configure.ac
@@ -269,11 +269,6 @@ if test "$with_hesiod" != no; then
   AC_DEFINE(HESIOD, 1, [Define to support using a Hesiod database to find the POP server.])
 fi
 
-OPTION_DEFAULT_OFF([mmdf],[support MMDF mailboxes])
-if test "$with_mmdf" != no; then
-   AC_DEFINE(MAIL_USE_MMDF, 1, [Define to support MMDF mailboxes in movemail.])
-fi
-
 OPTION_DEFAULT_OFF([mail-unlink],[unlink, rather than empty, mail spool after reading])
 if test "$with_mail_unlink" != no; then
    AC_DEFINE(MAIL_UNLINK_SPOOL, 1, [Define to unlink, rather than empty, mail spool after reading.])
diff --git a/etc/NEWS b/etc/NEWS
index 8ee6db6..e78a591 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -40,9 +40,16 @@ or by sticking with Emacs 24.4.
 If gnustep-config is not available, the old heuristics are used.
 
 ---
-** The configure option `--with-pkg-config-prog' has been removed.
+** The configure option '--with-pkg-config-prog' has been removed.
 Use './configure PKG_CONFIG=/full/name/of/pkg-config' if you need to.
 
+---
+** The configure option '--with-mmdf' has been removed.
+It was no longer useful, as it relied on libraries that are no longer
+supported, and its presence led to confusion during configuration.
+This affects only the 'movemail' utility; Emacs itself can still
+process MMDF-format files as before.
+
 ** The configure option '--enable-silent-rules' is now the default,
 and silent rules are now quieter.  To get the old behavior where
 'make' chatters a lot, configure with '--disable-silent-rules' or
diff --git a/lib-src/movemail.c b/lib-src/movemail.c
index 1618a69..231bc22 100644
--- a/lib-src/movemail.c
+++ b/lib-src/movemail.c
@@ -115,13 +115,9 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #define MAIL_USE_SYSTEM_LOCK
 #endif
 
-#ifdef MAIL_USE_MMDF
-extern int lk_open (), lk_close ();
-#endif
-
-#if !defined (MAIL_USE_SYSTEM_LOCK) && !defined (MAIL_USE_MMDF) && \
-	(defined (HAVE_LIBMAIL) || defined (HAVE_LIBLOCKFILE)) && \
-        defined (HAVE_MAILLOCK_H)
+#if (!defined MAIL_USE_SYSTEM_LOCK				\
+     && (defined HAVE_LIBMAIL || defined HAVE_LIBLOCKFILE)	\
+     && defined HAVE_MAILLOCK_H)
 #include <maillock.h>
 /* We can't use maillock unless we know what directory system mail
    files appear in. */
@@ -144,8 +140,7 @@ static bool mbx_delimit_end (FILE *);
 #endif
 
 #if (defined MAIL_USE_MAILLOCK						\
-     || (!defined DISABLE_DIRECT_ACCESS && !defined MAIL_USE_MMDF	\
-	 && !defined MAIL_USE_SYSTEM_LOCK))
+     || (!defined DISABLE_DIRECT_ACCESS && !defined MAIL_USE_SYSTEM_LOCK))
 /* Like malloc but get fatal error if memory is exhausted.  */
 
 static void *
@@ -229,10 +224,6 @@ main (int argc, char **argv)
   inname = argv[optind];
   outname = argv[optind+1];
 
-#ifdef MAIL_USE_MMDF
-  mmdf_init (argv[0]);
-#endif
-
   if (*outname == 0)
     fatal ("Destination file name is empty", 0, 0);
 
@@ -256,7 +247,6 @@ main (int argc, char **argv)
 
   char *lockname = 0;
 
-#ifndef MAIL_USE_MMDF
 #ifndef MAIL_USE_SYSTEM_LOCK
 #ifdef MAIL_USE_MAILLOCK
   spool_name = mail_spool_name (inname);
@@ -335,7 +325,6 @@ main (int argc, char **argv)
       delete_lockname = lockname;
     }
 #endif /* not MAIL_USE_SYSTEM_LOCK */
-#endif /* not MAIL_USE_MMDF */
 
 #ifdef SIGCHLD
   signal (SIGCHLD, SIG_DFL);
@@ -356,15 +345,11 @@ main (int argc, char **argv)
       if (setuid (getuid ()) < 0 || setregid (-1, real_gid) < 0)
 	fatal ("Failed to drop privileges", 0, 0);
 
-#ifndef MAIL_USE_MMDF
 #ifdef MAIL_USE_SYSTEM_LOCK
       indesc = open (inname, O_RDWR | O_BINARY);
 #else  /* if not MAIL_USE_SYSTEM_LOCK */
       indesc = open (inname, O_RDONLY | O_BINARY);
 #endif /* not MAIL_USE_SYSTEM_LOCK */
-#else  /* MAIL_USE_MMDF */
-      indesc = lk_open (inname, O_RDONLY | O_BINARY, 0, 0, 10);
-#endif /* MAIL_USE_MMDF */
 
       if (indesc < 0)
 	pfatal_with_name (inname);
@@ -474,11 +459,7 @@ main (int argc, char **argv)
 	}
 #endif /* MAIL_USE_SYSTEM_LOCK */
 
-#ifdef MAIL_USE_MMDF
-      lk_close (indesc, 0, 0, 0);
-#else
       close (indesc);
-#endif
 
 #ifndef MAIL_USE_SYSTEM_LOCK
       if (! preserve_mail)
-- 
2.1.0