aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2017-03-16 23:50:37 -0700
committerPaul Eggert2017-03-17 00:15:48 -0700
commit9f771f6440a61433d34f14aee4046cf2fa6ba391 (patch)
tree2394bc49b97cd025f338af449fc97992db3f9ccf
parentffbb46849990bf4bf952e01b78c9a1a0ca0d4432 (diff)
downloademacs-9f771f6440a61433d34f14aee4046cf2fa6ba391.tar.gz
emacs-9f771f6440a61433d34f14aee4046cf2fa6ba391.zip
Emacs 'movemail' is now a configure-time option
The new configure option --with-mailutils lets the builder say that Emacs should assume that GNU Mailutils is installed, instead of continuing to build and install its own limited and insecure substitute for 'movemail'. * INSTALL, etc/NEWS, etc/PROBLEMS: Mention --with-mailutils. * configure.ac: Add --with-mailutils option. (with_mailutils): New variable. Do not bother configuring 'movemail' when not building it. Warn about issues relating to --with-mailutils. * doc/emacs/rmail.texi (Movemail): Mention --with-mailutils. (Movemail, Remote Mailboxes): Document port numbers in POP and IMAP URLs. * lib-src/Makefile.in (with_mailutils): New macro. (UTILITIES): Use it.
-rw-r--r--INSTALL22
-rw-r--r--configure.ac177
-rw-r--r--doc/emacs/rmail.texi82
-rw-r--r--etc/NEWS6
-rw-r--r--etc/PROBLEMS1
-rw-r--r--lib-src/Makefile.in6
6 files changed, 175 insertions, 119 deletions
diff --git a/INSTALL b/INSTALL
index 10b17560031..a99f1078044 100644
--- a/INSTALL
+++ b/INSTALL
@@ -259,12 +259,23 @@ inconvenient for Emacs when running as daemon or running via a remote
259ssh connection. In order to completely prevent the use of D-Bus, configure 259ssh connection. In order to completely prevent the use of D-Bus, configure
260Emacs with the options '--without-dbus --without-gconf --without-gsettings'. 260Emacs with the options '--without-dbus --without-gconf --without-gsettings'.
261 261
262To read email via a network protocol like IMAP or POP, you can
263configure Emacs with the option '--with-mailutils', so that it always
264uses the GNU Mailutils 'movemail' program to retrieve mail. Otherwise
265the Emacs build procedure builds and installs an auxiliary 'movemail'
266program, a limited and insecure substitute that Emacs can use when
267Mailutils is not installed; when this happens, there are several
268configure options such as --without-pop that provide fine-grained
269control over Emacs 'movemail' construction.
270
262The Emacs mail reader RMAIL is configured to be able to read mail from 271The Emacs mail reader RMAIL is configured to be able to read mail from
263a POP3 server by default. Versions of the POP protocol older than 272a POP3 server by default. Versions of the POP protocol older than
264POP3 are not supported. For Kerberos-authenticated POP add 273POP3 are not supported. While POP3 support is typically enabled,
265'--with-kerberos', for Hesiod support add '--with-hesiod'. While POP3 274whether Emacs actually uses POP3 is controlled by individual users;
266is always enabled, whether Emacs actually uses POP is controlled by 275see the Rmail chapter of the Emacs manual. Unless you configure
267individual users--see the Rmail chapter of the Emacs manual. 276--with-mailutils, it is a good idea to configure --without-pop so that
277users are less likely to inadvertently read email via insecure
278channels.
268 279
269For image support you may have to download, build, and install the 280For image support you may have to download, build, and install the
270appropriate image support libraries for image types other than XBM and 281appropriate image support libraries for image types other than XBM and
@@ -538,7 +549,8 @@ information on this.
538Emacs info files. 549Emacs info files.
539 550
5408) If your system uses lock files to interlock access to mailer inbox files, 5518) If your system uses lock files to interlock access to mailer inbox files,
541then you might need to make the movemail program setuid or setgid 552and if you did not configure --with-mailutils, then you might need to
553make the Emacs-specific 'movemail' program setuid or setgid in order
542to enable it to write the lock files. We believe this is safe. 554to enable it to write the lock files. We believe this is safe.
543 555
5449) You are done! You can remove executables and object files from 5569) You are done! You can remove executables and object files from
diff --git a/configure.ac b/configure.ac
index 4d9ba9636d5..47d0e5cd19a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -240,6 +240,18 @@ AC_DEFUN([OPTION_DEFAULT_ON], [dnl
240 m4_bpatsubst([with_$1], [[^0-9a-z]], [_])=$with_features])dnl 240 m4_bpatsubst([with_$1], [[^0-9a-z]], [_])=$with_features])dnl
241])dnl 241])dnl
242 242
243# FIXME: The default options '--without-mailutils --with-pop' result
244# in a movemail implementation that supports only unencrypted POP3
245# connections. Encrypted connections should be the default.
246
247OPTION_DEFAULT_OFF([mailutils],
248 [rely on GNU Mailutils being installed; this makes the options
249 --without-pop through --with-mailhost irrelevant)])
250if test "$with_mailutils" = no; then
251 with_mailutils=
252fi
253AC_SUBST([with_mailutils])
254
243OPTION_DEFAULT_ON([pop],[don't support POP mail retrieval with movemail]) 255OPTION_DEFAULT_ON([pop],[don't support POP mail retrieval with movemail])
244if test "$with_pop" = yes; then 256if test "$with_pop" = yes; then
245 AC_DEFINE(MAIL_USE_POP) 257 AC_DEFINE(MAIL_USE_POP)
@@ -3789,87 +3801,91 @@ fi
3789AC_SUBST(LIBXML2_LIBS) 3801AC_SUBST(LIBXML2_LIBS)
3790AC_SUBST(LIBXML2_CFLAGS) 3802AC_SUBST(LIBXML2_CFLAGS)
3791 3803
3792# Check for mail-locking functions in a "mail" library. Probably this should 3804BLESSMAIL_TARGET=
3793# have the same check as for liblockfile below. 3805LIBS_MAIL=
3794AC_CHECK_LIB(mail, maillock, have_mail=yes, have_mail=no) 3806if test ! "$with_mailutils"; then
3795if test $have_mail = yes; then 3807 # Check for mail-locking functions in a "mail" library. Probably this should
3796 LIBS_MAIL=-lmail 3808 # have the same check as for liblockfile below.
3797 AC_DEFINE(HAVE_LIBMAIL, 1, [Define to 1 if you have the 'mail' library (-lmail).]) 3809 AC_CHECK_LIB([mail], [maillock], [have_mail=yes], [have_mail=no])
3798 3810 if test $have_mail = yes; then
3799 OLD_LIBS=$LIBS 3811 LIBS_MAIL=-lmail
3800 LIBS="$LIBS_MAIL $LIBS" 3812 AC_DEFINE([HAVE_LIBMAIL], [1],
3801 AC_CHECK_FUNCS(touchlock) 3813 [Define to 1 if you have the 'mail' library (-lmail).])
3802 LIBS=$OLD_LIBS 3814
3803else 3815 OLD_LIBS=$LIBS
3804 LIBS_MAIL= 3816 LIBS="$LIBS_MAIL $LIBS"
3805fi 3817 AC_CHECK_FUNCS([touchlock])
3806dnl Debian, at least: 3818 LIBS=$OLD_LIBS
3807AC_CHECK_LIB(lockfile, maillock, have_lockfile=yes, have_lockfile=no) 3819 fi
3808if test $have_lockfile = yes; then 3820 dnl Debian, at least:
3809 LIBS_MAIL=-llockfile 3821 AC_CHECK_LIB([lockfile], [maillock], [have_lockfile=yes], [have_lockfile=no])
3810 AC_DEFINE(HAVE_LIBLOCKFILE, 1, [Define to 1 if you have the 'lockfile' library (-llockfile).]) 3822 if test $have_lockfile = yes; then
3811else 3823 LIBS_MAIL=-llockfile
3812# If we have the shared liblockfile, assume we must use it for mail 3824 AC_DEFINE([HAVE_LIBLOCKFILE], [1],
3813# locking (e.g. Debian). If we couldn't link against liblockfile 3825 [Define to 1 if you have the 'lockfile' library (-llockfile).])
3814# (no liblockfile.a installed), ensure that we don't need to. 3826 else
3815 dnl This works for files generally, not just executables. 3827 # If we have the shared liblockfile, assume we must use it for mail
3816 dnl Should we look elsewhere for it? Maybe examine /etc/ld.so.conf? 3828 # locking (e.g. Debian). If we couldn't link against liblockfile
3817 AC_CHECK_PROG(liblockfile, liblockfile.so, yes, no, 3829 # (no liblockfile.a installed), ensure that we don't need to.
3818 /usr/lib:/lib:/usr/local/lib:$LD_LIBRARY_PATH) 3830 dnl This works for files generally, not just executables.
3819 if test $ac_cv_prog_liblockfile = yes; then 3831 dnl Should we look elsewhere for it? Maybe examine /etc/ld.so.conf?
3820 AC_MSG_ERROR([Shared liblockfile found but can't link against it. 3832 AC_CHECK_PROG([liblockfile], [liblockfile.so], [yes], [no],
3833 [/usr/lib:/lib:/usr/local/lib:$LD_LIBRARY_PATH])
3834 if test "$ac_cv_prog_liblockfile" = yes; then
3835 AC_MSG_ERROR([Shared liblockfile found but can't link against it.
3821This probably means that movemail could lose mail. 3836This probably means that movemail could lose mail.
3822There may be a 'development' package to install containing liblockfile.]) 3837There may be a 'development' package to install containing liblockfile.])
3838 fi
3823 fi 3839 fi
3824fi 3840 AC_CHECK_HEADERS([maillock.h])
3825AC_CHECK_HEADERS_ONCE(maillock.h)
3826AC_SUBST(LIBS_MAIL)
3827 3841
3828## Define MAIL_USE_FLOCK (or LOCKF) if the mailer uses flock (or lockf) to 3842 ## Define MAIL_USE_FLOCK (or LOCKF) if the mailer uses flock (or lockf) to
3829## interlock access to the mail spool. The alternative is a lock file named 3843 ## interlock access to the mail spool. The alternative is a lock file named
3830## /usr/spool/mail/$USER.lock. 3844 ## /usr/spool/mail/$USER.lock.
3831mail_lock=no 3845 mail_lock=no
3832case "$opsys" in 3846 case $opsys in
3833 aix4-2) mail_lock="lockf" ;; 3847 aix4-2) mail_lock="lockf" ;;
3834 3848
3835 gnu|freebsd|dragonfly|netbsd|openbsd|darwin) mail_lock="flock" ;; 3849 gnu|freebsd|dragonfly|netbsd|openbsd|darwin) mail_lock="flock" ;;
3836 3850
3837 ## On GNU/Linux systems, both methods are used by various mail programs. 3851 ## On GNU/Linux systems, both methods are used by various mail programs.
3838 ## I assume most people are using newer mailers that have heard of flock. 3852 ## I assume most people are using newer mailers that have heard of flock.
3839 ## Change this if you need to. 3853 ## Change this if you need to.
3840 ## Debian contains a patch which says: "On Debian/GNU/Linux systems, 3854 ## Debian contains a patch which says: "On Debian/GNU/Linux systems,
3841 ## configure gets the right answers, and that means *NOT* using flock. 3855 ## configure gets the right answers, and that means *NOT* using flock.
3842 ## Using flock is guaranteed to be the wrong thing. See Debian Policy 3856 ## Using flock is guaranteed to be the wrong thing. See Debian Policy
3843 ## for details." and then uses '#ifdef DEBIAN'. Unfortunately the 3857 ## for details." and then uses '#ifdef DEBIAN'. Unfortunately the
3844 ## Debian maintainer hasn't provided a clean fix for Emacs. 3858 ## Debian maintainer hasn't provided a clean fix for Emacs.
3845 ## movemail.c will use 'maillock' when MAILDIR, HAVE_LIBMAIL and 3859 ## movemail.c will use 'maillock' when MAILDIR, HAVE_LIBMAIL and
3846 ## HAVE_MAILLOCK_H are defined, so the following appears to be the 3860 ## HAVE_MAILLOCK_H are defined, so the following appears to be the
3847 ## correct logic. -- fx 3861 ## correct logic. -- fx
3848 ## We must check for HAVE_LIBLOCKFILE too, as movemail does. 3862 ## We must check for HAVE_LIBLOCKFILE too, as movemail does.
3849 ## liblockfile is a Free Software replacement for libmail, used on 3863 ## liblockfile is a Free Software replacement for libmail, used on
3850 ## Debian systems and elsewhere. -rfr. 3864 ## Debian systems and elsewhere. -rfr.
3851 gnu-*) 3865 gnu-*)
3852 mail_lock="flock" 3866 mail_lock="flock"
3853 if test $have_mail = yes || test $have_lockfile = yes; then 3867 if test $have_mail = yes || test $have_lockfile = yes; then
3854 test $ac_cv_header_maillock_h = yes && mail_lock=no 3868 test $ac_cv_header_maillock_h = yes && mail_lock=no
3855 fi 3869 fi ;;
3856 ;;
3857 3870
3858 mingw32) 3871 mingw32)
3859 mail_lock="none-needed" ;; 3872 mail_lock="none-needed" ;;
3860esac 3873 esac
3861 3874
3862BLESSMAIL_TARGET= 3875 case $mail_lock in
3863case "$mail_lock" in 3876 flock) AC_DEFINE([MAIL_USE_FLOCK], [1],
3864 flock) AC_DEFINE(MAIL_USE_FLOCK, 1, [Define if the mailer uses flock to interlock the mail spool.]) ;; 3877 [Define if the mailer uses flock to interlock the mail spool.]);;
3865 3878
3866 lockf) AC_DEFINE(MAIL_USE_LOCKF, 1, [Define if the mailer uses lockf to interlock the mail spool.]) ;; 3879 lockf) AC_DEFINE([MAIL_USE_LOCKF], [1],
3880 [Define if the mailer uses lockf to interlock the mail spool.]);;
3867 3881
3868 none-needed) ;; 3882 none-needed) ;;
3869 3883
3870 *) BLESSMAIL_TARGET="need-blessmail" ;; 3884 *) BLESSMAIL_TARGET="need-blessmail" ;;
3871esac 3885 esac
3872AC_SUBST(BLESSMAIL_TARGET) 3886fi
3887AC_SUBST([BLESSMAIL_TARGET])
3888AC_SUBST([LIBS_MAIL])
3873 3889
3874OLD_LIBS=$LIBS 3890OLD_LIBS=$LIBS
3875LIBS="$LIB_PTHREAD $LIB_MATH $LIBS" 3891LIBS="$LIB_PTHREAD $LIB_MATH $LIBS"
@@ -5469,4 +5485,21 @@ AC_MSG_ERROR(['etc/refcards/emacsver.tex' could not be made.])
5469 5485
5470AC_OUTPUT 5486AC_OUTPUT
5471 5487
5488if test ! "$with_mailutils"; then
5489 emacs_use_mailutils="use '$0 --with-mailutils'"
5490 case `(movemail --version) 2>/dev/null` in
5491 *Mailutils*) ;;
5492 *) emacs_use_mailutils="install GNU Mailutils
5493<http://mailutils.org> and $emacs_use_mailutils";;
5494 esac
5495 if test "$with_pop" = yes; then
5496 AC_MSG_WARN([This configuration installs a 'movemail' program
5497that retrieves POP3 email via only insecure channels.
5498To fix this you can $emacs_use_mailutils.])
5499 else
5500 AC_MSG_NOTICE([This configuration installs a 'movemail' program that cannot
5501retrieve POP3 email. You might want to $emacs_use_mailutils.])
5502 fi
5503fi
5504
5472test "$MAKE" = make || AC_MSG_NOTICE([Now you can run '$MAKE'.]) 5505test "$MAKE" = make || AC_MSG_NOTICE([Now you can run '$MAKE'.])
diff --git a/doc/emacs/rmail.texi b/doc/emacs/rmail.texi
index d46398281fb..b64ec223be7 100644
--- a/doc/emacs/rmail.texi
+++ b/doc/emacs/rmail.texi
@@ -1380,15 +1380,17 @@ which applies the code when displaying the text.
1380your Rmail file (@pxref{Rmail Inbox}). When loaded for the first time, 1380your Rmail file (@pxref{Rmail Inbox}). When loaded for the first time,
1381Rmail attempts to locate the @code{movemail} program and determine its 1381Rmail attempts to locate the @code{movemail} program and determine its
1382version. There are two versions of the @code{movemail} program: the 1382version. There are two versions of the @code{movemail} program: the
1383native one, shipped with GNU Emacs (the Emacs version) and the one 1383GNU Mailutils version (@pxref{movemail,,,mailutils,GNU mailutils}),
1384included in GNU mailutils (the mailutils version, 1384and an Emacs-specific version that is built and installed unless Emacs
1385@pxref{movemail,,,mailutils,GNU mailutils}). They support the same 1385was configured using the @option{--with-mailutils} option.
1386The two @command{mailtool} versions support the same
1386command line syntax and the same basic subset of options. However, the 1387command line syntax and the same basic subset of options. However, the
1387Mailutils version offers additional features. 1388Mailutils version offers additional features.
1388 1389
1389 The Emacs version of @code{movemail} is able to retrieve mail from 1390 The Emacs version of @command{movemail} can retrieve mail from the
1390the usual Unix mailbox formats and from remote mailboxes using the 1391usual Unix mailbox formats. Although it can also use the POP3
1391POP3 protocol. 1392protocol, this is not recommended because it does not support POP3 via
1393encrypted TLS channels.
1392 1394
1393 The Mailutils version is able to handle a wide set of mailbox 1395 The Mailutils version is able to handle a wide set of mailbox
1394formats, such as plain Unix mailboxes, @code{maildir} and @code{MH} 1396formats, such as plain Unix mailboxes, @code{maildir} and @code{MH}
@@ -1401,7 +1403,7 @@ in @ref{URL,,,mailutils,Mailbox URL Formats}. In short, a
1401@acronym{URL} is: 1403@acronym{URL} is:
1402 1404
1403@smallexample 1405@smallexample
1404@var{proto}://[@var{user}[:@var{password}]@@]@var{host-or-file-name} 1406@var{proto}://[@var{user}[:@var{password}]@@]@var{host-or-file-name}[:@var{port}]
1405@end smallexample 1407@end smallexample
1406 1408
1407@noindent 1409@noindent
@@ -1422,6 +1424,9 @@ User password to access the remote mailbox.
1422@item host-or-file-name 1424@item host-or-file-name
1423Hostname of the remote server for remote mailboxes or file name of a 1425Hostname of the remote server for remote mailboxes or file name of a
1424local mailbox. 1426local mailbox.
1427
1428@item port
1429Optional port number, if not the default for that protocal.
1425@end table 1430@end table
1426 1431
1427@noindent 1432@noindent
@@ -1429,19 +1434,20 @@ local mailbox.
1429 1434
1430@table @code 1435@table @code
1431@item mbox 1436@item mbox
1432Usual Unix mailbox format. In this case, neither @var{user} nor 1437Usual Unix mailbox format. In this case, @var{user}, @var{pass} and
1433@var{pass} are used, and @var{host-or-file-name} denotes the file name 1438@var{port} are not used, and @var{host-or-file-name} denotes the file
1434of the mailbox file, e.g., @code{mbox://var/spool/mail/smith}. 1439name of the mailbox file, e.g., @code{mbox://var/spool/mail/smith}.
1435 1440
1436@item mh 1441@item mh
1437A local mailbox in the @acronym{MH} format. @var{user} and 1442A local mailbox in the @acronym{MH} format. @var{user}, @var{pass}
1438@var{pass} are not used. @var{host-or-file-name} denotes the name of 1443and @var{port} are not used. @var{host-or-file-name} denotes the name
1439@acronym{MH} folder, e.g., @code{mh://Mail/inbox}. 1444of @acronym{MH} folder, e.g., @code{mh://Mail/inbox}.
1440 1445
1441@item maildir 1446@item maildir
1442A local mailbox in the @acronym{maildir} format. @var{user} and 1447A local mailbox in the @acronym{maildir} format. @var{user},
1443@var{pass} are not used, and @var{host-or-file-name} denotes the name of 1448@var{pass} and @var{port} are not used, and @var{host-or-file-name}
1444@code{maildir} mailbox, e.g., @code{maildir://mail/inbox}. 1449denotes the name of @code{maildir} mailbox, e.g.,
1450@code{maildir://mail/inbox}.
1445 1451
1446@item file 1452@item file
1447Any local mailbox format. Its actual format is detected automatically 1453Any local mailbox format. Its actual format is detected automatically
@@ -1451,15 +1457,15 @@ by @code{movemail}.
1451A remote mailbox to be accessed via POP3 protocol. @var{user} 1457A remote mailbox to be accessed via POP3 protocol. @var{user}
1452specifies the remote user name to use, @var{pass} may be used to 1458specifies the remote user name to use, @var{pass} may be used to
1453specify the user password, @var{host-or-file-name} is the name or IP 1459specify the user password, @var{host-or-file-name} is the name or IP
1454address of the remote mail server to connect to; e.g., 1460address of the remote mail server to connect to, and @var{port} is the
1455@code{pop://smith:guessme@@remote.server.net}. 1461port number; e.g., @code{pop://smith:guessme@@remote.server.net:995}.
1456 1462
1457@item imap 1463@item imap
1458A remote mailbox to be accessed via IMAP4 protocol. @var{user} 1464A remote mailbox to be accessed via IMAP4 protocol. @var{user}
1459specifies the remote user name to use, @var{pass} may be used to 1465specifies the remote user name to use, @var{pass} may be used to
1460specify the user password, @var{host-or-file-name} is the name or IP 1466specify the user password, @var{host-or-file-name} is the name or IP
1461address of the remote mail server to connect to; 1467address of the remote mail server to connect to, and @var{port} is the
1462e.g., @code{imap://smith:guessme@@remote.server.net}. 1468port number; e.g., @code{imap://smith:guessme@@remote.server.net:993}.
1463@end table 1469@end table
1464 1470
1465 Alternatively, you can specify the file name of the mailbox to use. 1471 Alternatively, you can specify the file name of the mailbox to use.
@@ -1483,44 +1489,40 @@ listed in @code{rmail-movemail-search-path}, then in @code{exec-path}
1483@pindex movemail 1489@pindex movemail
1484 1490
1485 Some sites use a method called POP for accessing users' inbox data 1491 Some sites use a method called POP for accessing users' inbox data
1486instead of storing the data in inbox files. By default, the @code{Emacs 1492instead of storing the data in inbox files. The Mailutils
1487movemail} can work with POP (unless the Emacs @code{configure} script 1493@command{movemail} by default supports POP with TLS encryption.
1488was run with the option @samp{--without-pop}). 1494Although the @command{Emacs movemail} supports unencrypted POP, this
1489 1495is not recommended due to the lack of encryption. Both versions of
1490Similarly, the Mailutils @code{movemail} by default supports POP, unless 1496@command{movemail} work only with POP3, not with older versions of
1491it was configured with the @samp{--disable-pop} option. 1497POP.
1492
1493Both versions of @code{movemail} only work with POP3, not with older
1494versions of POP.
1495 1498
1496@cindex @env{MAILHOST} environment variable 1499@cindex @env{MAILHOST} environment variable
1497@cindex POP mailboxes 1500@cindex POP mailboxes
1498 No matter which flavor of @code{movemail} you use, you can specify 1501 You can specify
1499a POP inbox by using a POP @dfn{URL} (@pxref{Movemail}). A POP 1502a POP inbox by using a POP @dfn{URL} (@pxref{Movemail}). A POP
1500@acronym{URL} is of the form 1503@acronym{URL} is of the form
1501@samp{pop://@var{username}@@@var{hostname}}, where 1504@samp{pop://@var{username}@@@var{hostname}:@var{port}}, where
1502@var{hostname} is the host name or IP address of the remote mail 1505@var{hostname} and @var{port} are the host name (or IP address)
1506and port number of the remote mail
1503server and @var{username} is the user name on that server. 1507server and @var{username} is the user name on that server.
1504Additionally, you may specify the password in the mailbox @acronym{URL}: 1508Additionally, you may specify the password in the mailbox @acronym{URL}:
1505@samp{pop://@var{username}:@var{password}@@@var{hostname}}. In this 1509@samp{pop://@var{username}:@var{password}@@@var{hostname}:@var{port}}. In this
1506case, @var{password} takes preference over the one set by 1510case, @var{password} takes preference over the one set by
1507@code{rmail-remote-password} (see below). This is especially useful 1511@code{rmail-remote-password} (see below). This is especially useful
1508if you have several remote mailboxes with different passwords. 1512if you have several remote mailboxes with different passwords.
1509 1513
1510 For backward compatibility, Rmail also supports an alternative way of 1514 For backward compatibility, Rmail also supports an alternative way of
1511specifying remote POP mailboxes. Specifying an inbox name in the form 1515specifying remote POP mailboxes. Specifying an inbox name in the form
1512@samp{po:@var{username}:@var{hostname}} is equivalent to 1516@samp{po:@var{username}:@var{hostname}:@var{port}} is equivalent to
1513@samp{pop://@var{username}@@@var{hostname}}. If you omit the 1517@samp{pop://@var{username}@@@var{hostname}:@var{port}}. If you omit the
1514@var{:hostname} part, the @env{MAILHOST} environment variable specifies 1518@var{:hostname} part, the @env{MAILHOST} environment variable specifies
1515the machine on which to look for the POP server. 1519the machine on which to look for the POP server.
1516 1520
1517@c FIXME mention --with-hesiod "support Hesiod to get the POP server host"?
1518
1519@cindex IMAP mailboxes 1521@cindex IMAP mailboxes
1520 Another method for accessing remote mailboxes is IMAP@. This method is 1522 Another method for accessing remote mailboxes is IMAP@. This method is
1521supported only by the Mailutils @code{movemail}. To specify an IMAP 1523supported only by the Mailutils @code{movemail}. To specify an IMAP
1522mailbox in the inbox list, use the following mailbox @acronym{URL}: 1524mailbox in the inbox list, use the following mailbox @acronym{URL}:
1523@samp{imap://@var{username}[:@var{password}]@@@var{hostname}}. The 1525@samp{imap://@var{username}[:@var{password}]@@@var{hostname}:@var{port}}. The
1524@var{password} part is optional, as described above. 1526@var{password} part is optional, as described above.
1525 1527
1526@vindex rmail-remote-password 1528@vindex rmail-remote-password
@@ -1550,9 +1552,7 @@ preserve your inbox contents; use @code{rmail-preserve-inbox} instead.
1550 1552
1551@cindex Kerberos POP authentication 1553@cindex Kerberos POP authentication
1552 The @code{movemail} program installed at your site may support 1554 The @code{movemail} program installed at your site may support
1553Kerberos authentication (the Emacs @code{movemail} does so if Emacs was 1555Kerberos authentication. If it is supported, it is used by default
1554configured with the option @code{--with-kerberos} or
1555@code{--with-kerberos5}). If it is supported, it is used by default
1556whenever you attempt to retrieve POP mail when 1556whenever you attempt to retrieve POP mail when
1557@code{rmail-remote-password} and @code{rmail-remote-password-required} 1557@code{rmail-remote-password} and @code{rmail-remote-password-required}
1558are unset. 1558are unset.
diff --git a/etc/NEWS b/etc/NEWS
index 88ae7cf1f52..f047aa86f9f 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -37,6 +37,12 @@ Use 'configure --with-gnutls=no' to build even when GnuTLS is missing.
37** GnuTLS version 2.12.2 or later is now required, instead of merely 37** GnuTLS version 2.12.2 or later is now required, instead of merely
38version 2.6.6 or later. 38version 2.6.6 or later.
39 39
40** The new option 'configure --with-mailutils' causes Emacs to rely on
41GNU Mailutils 'movemail' to retrieve email. By default, the Emacs
42build procedure continues to build and install a limited and insecure
43'movemail' substitute. Although --with-mailutils is recommended, it
44is not yet the default due to backward-compatibility concerns.
45
40** The new option 'configure --enable-gcc-warnings=warn-only' causes 46** The new option 'configure --enable-gcc-warnings=warn-only' causes
41GCC to issue warnings without stopping the build. This behavior is 47GCC to issue warnings without stopping the build. This behavior is
42now the default in developer builds. As before, use 48now the default in developer builds. As before, use
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index b8923201014..eddae12a70f 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -323,6 +323,7 @@ or set the variable 'cannot-suspend' to a non-nil value.
323 323
324*** movemail compiled with POP support can't connect to the POP server. 324*** movemail compiled with POP support can't connect to the POP server.
325 325
326This problem can occur if you do not configure --with-mailutils.
326Make sure that the 'pop' entry in /etc/services, or in the services 327Make sure that the 'pop' entry in /etc/services, or in the services
327NIS map if your machine uses NIS, has the same port number as the 328NIS map if your machine uses NIS, has the same port number as the
328entry on the POP server. A common error is for the POP server to be 329entry on the POP server. A common error is for the POP server to be
diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in
index d0aa9cc7c27..b2cd66c0498 100644
--- a/lib-src/Makefile.in
+++ b/lib-src/Makefile.in
@@ -100,6 +100,9 @@ bindir=@bindir@
100# --libexecdir option to '../configure'. 100# --libexecdir option to '../configure'.
101libexecdir=@libexecdir@ 101libexecdir=@libexecdir@
102 102
103# Nonempty if Emacs can assume Mailutils is installed.
104with_mailutils=@with_mailutils@
105
103# Directory for local state files for all programs. 106# Directory for local state files for all programs.
104localstatedir=@localstatedir@ 107localstatedir=@localstatedir@
105 108
@@ -160,7 +163,8 @@ INSTALLABLES = etags${EXEEXT} ctags${EXEEXT} emacsclient${EXEEXT} $(CLIENTW) \
160 163
161# Things that Emacs runs internally, or during the build process, 164# Things that Emacs runs internally, or during the build process,
162# which should not be installed in bindir. 165# which should not be installed in bindir.
163UTILITIES = profile${EXEEXT} movemail${EXEEXT} hexl${EXEEXT} \ 166UTILITIES = profile${EXEEXT} hexl${EXEEXT} \
167 $(if $(with_mailutils), , movemail${EXEEXT}) \
164 $(and $(use_gamedir), update-game-score${EXEEXT}) 168 $(and $(use_gamedir), update-game-score${EXEEXT})
165 169
166DONT_INSTALL= make-docfile${EXEEXT} 170DONT_INSTALL= make-docfile${EXEEXT}