# HG changeset patch # User markus schnalke # Date 1338843113 -7200 # Node ID cefaa856d431723511df36d0f4f4d77f632cd48b # Parent 4e1715537e2f7d783eaad04d8e7c9208ee9ee761 A lot of new text about configure switches. diff -r 4e1715537e2f -r cefaa856d431 bib --- a/bib Mon Jun 04 21:49:47 2012 +0200 +++ b/bib Mon Jun 04 22:51:53 2012 +0200 @@ -222,3 +222,20 @@ %I Pearson Education %D 2006 %O \s-1ISBN\s0: 0-321-16607-8 + +%L XVS87 +%K posix +%B X/Open Portability Guide +%D January 1987 +%V 1 +%T XVS Commands and Utilities +%O \s-1ISBN\s0: 0-444-70174-5 + +%L XCU92 +%K posix +%B CAE Specification +%D July 1992 +%I The Open Group +%T Commands and Utilities (XCU), Issue 4 +%O \s-2ISBN\s0: 1-872630-48-0 + diff -r 4e1715537e2f -r cefaa856d431 ch03.roff --- a/ch03.roff Mon Jun 04 21:49:47 2012 +0200 +++ b/ch03.roff Mon Jun 04 22:51:53 2012 +0200 @@ -399,7 +399,9 @@ .P I have reduced the number of project-specific configure options from fifteen to three. -.BU + +.U3 "Mail Transfer Facility Options +.P With the removal of the mail transfer facilities five option vanished: .IP \f(CW--with-mts=[smtp|sendmail]\fP Specified the default mail transport service, which now is sendmail always. @@ -412,11 +414,9 @@ Enabled TLS support for mail transfer. .IP \f(CW--enable-pop\fP Enabled the message retrieval facility. -.BU ---with-ndbm=ARG use -lARG to link with ndbm ---with-ndbmheader=ARG #include to use ndbm -.BU +.U3 "Backup Prefix +.P The default backup prefix, i.e. the string that was prepended to message filenames to tag them as deleted, had been the comma `\f(CW,\fP'. There was a configure option to change the default to the hash symbol @@ -451,21 +451,278 @@ (Well, there still are corner-cases to remove until the backup prefix can be layed to rest, eventually.) .\" FIXME: Do this work in the code! +.P +The two configure options +.CW --with-editor=EDITOR +.CW --with-pager=PAGER +were used to specify the default editor and pager at configure time. +Doing so at configure time made sense in the Eighties, +when the available editors and pagers varied more across different systems. +Today, the situation is much more homegenic. +The programs +.Pn vi +and +.Pn more +can be expected to be available anywhere on every Unix system, +as they are specified by POSIX since two decades. +(The specifications for +.Pn vi +and +.Pn more +appeared in +.[ +posix 1987 +.] +and, +.[ +posix 1992 +.] +respectively.) +As a first step, these two tools were hard-coded as defaults. +.Ci 5d43a99db70c12a673028c7758c20cbe3e13ef5f +Not changed were the +.Pe editor +and +.Pe moreproc +profile entries, which allowed the user to change the default +by personal preference. +Later, the concept was reworked to respect the standard environment +variables +.Ev VISUAL +and +.Ev PAGER +if they were set. +Today, mmh determines the editor to use in the following order, +taking the first available and non-empty item: +.IP (1) +Environment variable +.Ev MMHEDITOR +.IP (2) +Profile entry +.Pe Editor +.IP (3) +Environment variable +.Ev VISUAL +.IP (4) +Environment variable +.Ev EDITOR +.IP (5) +Command +.Pn vi . +.P +The pager to use is deteminded in the following order, +also taking the first available and non-empty item: +.IP (1) +Environment variable +.Ev MMHPAGER +.IP (2) +Profile entry +.Pe Pager +(replaces +.Pe moreproc ) +.IP (3) +Environment variable +.Ev PAGER +.IP (4) +Command +.Pn more . +.P +.Ci f85f4b7ae62e3d05a945dcd46ead51f0a2a89a9b +.Ci 0c4214ea2aec6497d0d67b436bbee9bc1d225f1e +.P +The new behavior confirms better to the common behavior on Unix +systems, as +.Ev VISUAL /\c +.Ev EDITOR +and +.Ev PAGER +are respected. +Additionally, the new approach is more uniform and +without surprise for users. +.U3 "Locale +.P +The configure option +.Sw --disable-locale +was removed because today there's hardly any need to disable locale +support. +.Ci ccf4f175ef4c4e7522f9510a4a1149c15d810dd9 +.U3 "\fLslocal\fP Supress Duplicates .P ---with-editor=EDITOR specify the default editor ---with-pager=PAGER specify the default pager -.Ci 5d43a99db70c12a673028c7758c20cbe3e13ef5f +.Pn slocal +is an MDA included in mmh. +This is a violation of the idea that mmh is a MUA only. +.Pn slocal +should become a separate project. +Nonetheless, ouf of convenience and due to lack of convincement, +yet it remains being part of mmh. +This is likely to change in the future. +Already, +.Pn slocal was stripped down. +It used to depend on +.I ndbm , +a database library. +The database is used to store the message ids of all messages delivered. +This enables +.Pn slocal +to suppress delivering the same message to the same user twice. +(This features was enabled by the +.Sw -suppressdup +switch.) +.P +A variety of version of the database library exist. +Complicated autoconf code was needed to detect them correctly. +Further more, the configure switches +.Sw --with-ndbm=ARG +and +.Sw --with-ndbmheader=ARG +were added to help with difficult setups that would +not be detected automatically. +.P +By removing the suppress duplicates feature of +.Pn slocal , +the dependency on +.I ndbm +was removed and 120 lines of complex autoconf could be saved. +.Ci ecd6d6a20cb7a1507e3a20d6c4cb3a1cf14c6bbf +The change removed funtionality too, but the value it would have added +is minor to the weight loss by dropping the dependency and +the complex autoconf code. +.U3 "mh-e Support .P ---disable-mhe disable mhe support +The configure option +.Sw --disable-mhe +was removed when the mh-e support was reworked. +Mh-e is the Emacs front-end to MH. +It requires MH to act different in some minor ways. +The configure option could switch the extension off. +After removing support for old versions of mh-e, +only the +.Sw -build +switches for +.Pn forw +and +.Pn repl +are left to be mh-e-specific. +They are now always available because they add little code and complexity. +This change was first done in nmh and thereafter merged into mmh. +The interface changes in mmh require mh-e to be adjusted to use mmh +as the back-end. This requires minor changes to mh-e, though removing +the +.Sw -build +switches would require larger adjustments. +The +.Sw --disable-mhe +configure option was removed and the remaining support for mh-e is always +built in. .Ci a7ce7b4a580d77b6c2c4d980812beb589aa4c643 +Removing the option removed a second code setup that would have +needed to be tested. +.U3 "Masquerading .P ---enable-masquerade='draft_from mmailid username_extension' enable up to 3 types of address masquerading ---with-locking=[dot|fcntl|flock|lockf] specify the file locking method ---disable-locale turn off locale features +The configure option +.Sw --enable-masquerade +could take up to three items: draft_from, mmailid, username_extension. +They activated different types of address masquerading. +All of them were implemented in the SMTP-speaking +.Pn post +command. +Mmh no longer speaks SMTP and the replacing +.Pn spost +command no longer does MTA jobs like this one. +Because address masquerading is an MTA's task and mmh does not cover +this field anymore, the funtion needs to be implemented in the +external MTA used. +.P +The +.I mmailid +masquerading type is the oldest one of the three and the only one +available in the original MH. +It provided a +.I username +to +.I fakeusername +mapping, based on the value of the password file's GECOS field. +The man page +.Mp mh-tailor(5) +described the use case as being the following: +.QP +This is useful if you want the messages you send to always +appear to come from the name of an MTA alias rather than your +actual account name. For instance, many organizations set up +`First.Last' sendmail aliases for all users. If this is +the case, the GECOS field for each user should look like: +``First [Middle] Last '' +.P +As mmh sends outgoing mail via the local MTA only, +it is the best location to do such global rewrites. +Besides, the MTA is conceptionally the right location because it +does the reverse mapping for incoming mail (aliasing), too. +The masquerading set up there is set up once for all +mail software on the system. +.Ci 0836c8000ccb34b59410ef1c15b1b7feac70ce5f +.P +The +.I username_extension +masquerading type did not replace the username but could append a suffix +to it. +The suffix needed to be specified by the +.Ev USERNAME_EXTENSION +environment variable. +It provided support for the +.I user-extension +feature of qmail and the similar +.I "plussed user +processing of sendmail. +The decision to remove this username_extension masquerading was +motivated by the fact that +.Pn spost +hadn't supported it. +.Ci 2abae0bfd0ad5bf898461e50aa4b466d641f23d9_username_extension +Mmh now provides a more general, though in this case less convenient, +kind of masquerading. +.P +The +.I draft_from +masquerading type instructed +.Pn post +to use the value of the `From:' header as SMTP envelope sender. +This allowes to replace the sender address completely. +.Ci b14ea6073f77b4359aaf3fddd0e105989db9 +Mmh now offers a kind of masquerading similar in effect, but +with technical differences. +As mmh does not transfer messages itself, the local MTA has full control +over the sending address. Any masquerading mmh introduces may be reverted +by the MTA. In times of pedantic spam checking, an MTA will likely do so +to keep its own reputation up. +Nonetheless, the MUA can set the `From:' header and thus propose +a sender address to be used to the MTA. +The MTA may then decide to take that one or generate the canonical sender +address for use as envelope sender address. +.P +In mmh, the MTA will always extract the recipient and sender from the +headers (\c +.Pn sendmail 's +.Sw -t +switch). +The `From:' header of the draft may be set arbitrary by the user. +If it is missing, the canonical sender address will be generated by the MTA. + +.U3 "Remaining Options +.P +Two configure options remain in mmh. +One is the locking method to use: +.Sw --with-locking=[dot|fcntl|flock|lockf] . +Removing all other methods except the portable dot locking and having +that as default is appealing, but requires deeper investigation into the +topic. +The other, +.Sw --enable-debug , +compiles the programs with debugging symbols and does not strip them. +This option is likely to stay. @@ -476,7 +733,7 @@ -.H1 "Moderizing +.H1 "Modernizing .H2 "Removal of Code Relicts