docs/master

changeset 74:cefaa856d431

A lot of new text about configure switches.
author markus schnalke <meillo@marmaro.de>
date Mon, 04 Jun 2012 22:51:53 +0200
parents 4e1715537e2f
children 0927d38589af
files bib ch03.roff
diffstat 2 files changed, 287 insertions(+), 13 deletions(-) [+]
line diff
     1.1 --- a/bib	Mon Jun 04 21:49:47 2012 +0200
     1.2 +++ b/bib	Mon Jun 04 22:51:53 2012 +0200
     1.3 @@ -222,3 +222,20 @@
     1.4  %I Pearson Education
     1.5  %D 2006
     1.6  %O \s-1ISBN\s0: 0-321-16607-8
     1.7 +
     1.8 +%L XVS87
     1.9 +%K posix
    1.10 +%B X/Open Portability Guide
    1.11 +%D January 1987
    1.12 +%V 1
    1.13 +%T XVS Commands and Utilities
    1.14 +%O \s-1ISBN\s0: 0-444-70174-5
    1.15 +
    1.16 +%L XCU92
    1.17 +%K posix
    1.18 +%B CAE Specification
    1.19 +%D July 1992
    1.20 +%I The Open Group
    1.21 +%T Commands and Utilities (XCU), Issue 4
    1.22 +%O \s-2ISBN\s0: 1-872630-48-0
    1.23 +
     2.1 --- a/ch03.roff	Mon Jun 04 21:49:47 2012 +0200
     2.2 +++ b/ch03.roff	Mon Jun 04 22:51:53 2012 +0200
     2.3 @@ -399,7 +399,9 @@
     2.4  .P
     2.5  I have reduced the number of project-specific configure options from 
     2.6  fifteen to three.
     2.7 -.BU
     2.8 +
     2.9 +.U3 "Mail Transfer Facility Options
    2.10 +.P
    2.11  With the removal of the mail transfer facilities five option vanished:
    2.12  .IP \f(CW--with-mts=[smtp|sendmail]\fP
    2.13  Specified the default mail transport service, which now is sendmail always.
    2.14 @@ -412,11 +414,9 @@
    2.15  Enabled TLS support for mail transfer.
    2.16  .IP \f(CW--enable-pop\fP
    2.17  Enabled the message retrieval facility.
    2.18 -.BU
    2.19 ---with-ndbm=ARG         use -lARG to link with ndbm
    2.20 ---with-ndbmheader=ARG   #include <ARG> to use ndbm
    2.21  
    2.22 -.BU
    2.23 +.U3 "Backup Prefix
    2.24 +.P
    2.25  The default backup prefix, i.e. the string that was prepended to message
    2.26  filenames to tag them as deleted, had been the comma `\f(CW,\fP'.
    2.27  There was a configure option to change the default to the hash symbol
    2.28 @@ -451,21 +451,278 @@
    2.29  (Well, there still are corner-cases to remove until the backup
    2.30  prefix can be layed to rest, eventually.)
    2.31  .\" FIXME: Do this work in the code!
    2.32 +.P
    2.33 +The two configure options
    2.34 +.CW --with-editor=EDITOR
    2.35 +.CW --with-pager=PAGER
    2.36 +were used to specify the default editor and pager at configure time.
    2.37 +Doing so at configure time made sense in the Eighties,
    2.38 +when the available editors and pagers varied more across different systems.
    2.39 +Today, the situation is much more homegenic.
    2.40 +The programs
    2.41 +.Pn vi
    2.42 +and
    2.43 +.Pn more
    2.44 +can be expected to be available anywhere on every Unix system,
    2.45 +as they are specified by POSIX since two decades.
    2.46 +(The specifications for
    2.47 +.Pn vi
    2.48 +and
    2.49 +.Pn more
    2.50 +appeared in
    2.51 +.[
    2.52 +posix 1987
    2.53 +.]
    2.54 +and,
    2.55 +.[
    2.56 +posix 1992
    2.57 +.]
    2.58 +respectively.)
    2.59 +As a first step, these two tools were hard-coded as defaults.
    2.60 +.Ci 5d43a99db70c12a673028c7758c20cbe3e13ef5f
    2.61 +Not changed were the
    2.62 +.Pe editor
    2.63 +and
    2.64 +.Pe moreproc
    2.65 +profile entries, which allowed the user to change the default
    2.66 +by personal preference.
    2.67 +Later, the concept was reworked to respect the standard environment
    2.68 +variables
    2.69 +.Ev VISUAL
    2.70 +and
    2.71 +.Ev PAGER
    2.72 +if they were set.
    2.73 +Today, mmh determines the editor to use in the following order,
    2.74 +taking the first available and non-empty item:
    2.75 +.IP (1)
    2.76 +Environment variable
    2.77 +.Ev MMHEDITOR
    2.78 +.IP (2)
    2.79 +Profile entry
    2.80 +.Pe Editor
    2.81 +.IP (3)
    2.82 +Environment variable
    2.83 +.Ev VISUAL
    2.84 +.IP (4)
    2.85 +Environment variable
    2.86 +.Ev EDITOR
    2.87 +.IP (5)
    2.88 +Command
    2.89 +.Pn vi .
    2.90 +.P
    2.91 +The pager to use is deteminded in the following order,
    2.92 +also taking the first available and non-empty item:
    2.93 +.IP (1)
    2.94 +Environment variable
    2.95 +.Ev MMHPAGER
    2.96 +.IP (2)
    2.97 +Profile entry
    2.98 +.Pe Pager
    2.99 +(replaces
   2.100 +.Pe moreproc )
   2.101 +.IP (3)
   2.102 +Environment variable
   2.103 +.Ev PAGER
   2.104 +.IP (4)
   2.105 +Command
   2.106 +.Pn more .
   2.107 +.P
   2.108 +.Ci f85f4b7ae62e3d05a945dcd46ead51f0a2a89a9b
   2.109 +.Ci 0c4214ea2aec6497d0d67b436bbee9bc1d225f1e
   2.110 +.P
   2.111 +The new behavior confirms better to the common behavior on Unix
   2.112 +systems, as
   2.113 +.Ev VISUAL /\c
   2.114 +.Ev EDITOR
   2.115 +and
   2.116 +.Ev PAGER
   2.117 +are respected.
   2.118 +Additionally, the new approach is more uniform and
   2.119 +without surprise for users.
   2.120  
   2.121 +.U3 "Locale
   2.122 +.P
   2.123 +The configure option
   2.124 +.Sw --disable-locale
   2.125 +was removed because today there's hardly any need to disable locale
   2.126 +support.
   2.127 +.Ci ccf4f175ef4c4e7522f9510a4a1149c15d810dd9
   2.128  
   2.129 +.U3 "\fLslocal\fP Supress Duplicates
   2.130  .P
   2.131 ---with-editor=EDITOR    specify the default editor
   2.132 ---with-pager=PAGER      specify the default pager
   2.133 -.Ci 5d43a99db70c12a673028c7758c20cbe3e13ef5f
   2.134 +.Pn slocal
   2.135 +is an MDA included in mmh.
   2.136 +This is a violation of the idea that mmh is a MUA only.
   2.137 +.Pn slocal
   2.138 +should become a separate project.
   2.139 +Nonetheless, ouf of convenience and due to lack of convincement,
   2.140 +yet it remains being part of mmh.
   2.141 +This is likely to change in the future.
   2.142 +Already,
   2.143 +.Pn slocal was stripped down.
   2.144 +It used to depend on
   2.145 +.I ndbm ,
   2.146 +a database library.
   2.147 +The database is used to store the message ids of all messages delivered.
   2.148 +This enables
   2.149 +.Pn slocal
   2.150 +to suppress delivering the same message to the same user twice.
   2.151 +(This features was enabled by the
   2.152 +.Sw -suppressdup
   2.153 +switch.)
   2.154 +.P
   2.155 +A variety of version of the database library exist.
   2.156 +Complicated autoconf code was needed to detect them correctly.
   2.157 +Further more, the configure switches
   2.158 +.Sw --with-ndbm=ARG
   2.159 +and
   2.160 +.Sw --with-ndbmheader=ARG
   2.161 +were added to help with difficult setups that would
   2.162 +not be detected automatically.
   2.163 +.P
   2.164 +By removing the suppress duplicates feature of
   2.165 +.Pn slocal ,
   2.166 +the dependency on
   2.167 +.I ndbm
   2.168 +was removed and 120 lines of complex autoconf could be saved.
   2.169 +.Ci ecd6d6a20cb7a1507e3a20d6c4cb3a1cf14c6bbf
   2.170 +The change removed funtionality too, but the value it would have added
   2.171 +is minor to the weight loss by dropping the dependency and 
   2.172 +the complex autoconf code.
   2.173  
   2.174 +.U3 "mh-e Support
   2.175  .P
   2.176 ---disable-mhe           disable mhe support
   2.177 +The configure option
   2.178 +.Sw --disable-mhe
   2.179 +was removed when the mh-e support was reworked. 
   2.180 +Mh-e is the Emacs front-end to MH.
   2.181 +It requires MH to act different in some minor ways.
   2.182 +The configure option could switch the extension off.
   2.183 +After removing support for old versions of mh-e,
   2.184 +only the
   2.185 +.Sw -build
   2.186 +switches for
   2.187 +.Pn forw
   2.188 +and
   2.189 +.Pn repl
   2.190 +are left to be mh-e-specific.
   2.191 +They are now always available because they add little code and complexity.
   2.192 +This change was first done in nmh and thereafter merged into mmh.
   2.193 +The interface changes in mmh require mh-e to be adjusted to use mmh
   2.194 +as the back-end. This requires minor changes to mh-e, though removing
   2.195 +the
   2.196 +.Sw -build
   2.197 +switches would require larger adjustments.
   2.198 +The
   2.199 +.Sw --disable-mhe
   2.200 +configure option was removed and the remaining support for mh-e is always
   2.201 +built in.
   2.202  .Ci a7ce7b4a580d77b6c2c4d980812beb589aa4c643
   2.203 +Removing the option removed a second code setup that would have
   2.204 +needed to be tested.
   2.205  
   2.206 +.U3 "Masquerading
   2.207  .P
   2.208 ---enable-masquerade='draft_from mmailid username_extension' enable up to 3 types of address masquerading
   2.209 ---with-locking=[dot|fcntl|flock|lockf] specify the file locking method
   2.210 ---disable-locale        turn off locale features
   2.211 +The configure option
   2.212 +.Sw --enable-masquerade
   2.213 +could take up to three items: draft_from, mmailid, username_extension.
   2.214 +They activated different types of address masquerading.
   2.215 +All of them were implemented in the SMTP-speaking
   2.216 +.Pn post
   2.217 +command.
   2.218 +Mmh no longer speaks SMTP and the replacing
   2.219 +.Pn spost
   2.220 +command no longer does MTA jobs like this one.
   2.221 +Because address masquerading is an MTA's task and mmh does not cover
   2.222 +this field anymore, the funtion needs to be implemented in the
   2.223 +external MTA used.
   2.224 +.P
   2.225 +The
   2.226 +.I mmailid
   2.227 +masquerading type is the oldest one of the three and the only one
   2.228 +available in the original MH.
   2.229 +It provided a
   2.230 +.I username
   2.231 +to
   2.232 +.I fakeusername
   2.233 +mapping, based on the value of the password file's GECOS field.
   2.234 +The man page
   2.235 +.Mp mh-tailor(5)
   2.236 +described the use case as being the following:
   2.237 +.QP
   2.238 +This is useful if you want the messages you send to always
   2.239 +appear to come from the name of an MTA alias rather than your
   2.240 +actual account name.  For instance, many organizations set up
   2.241 +`First.Last' sendmail aliases for all users.  If this is
   2.242 +the case, the GECOS field for each user should look like:
   2.243 +``First [Middle] Last <First.Last>''
   2.244 +.P
   2.245 +As mmh sends outgoing mail via the local MTA only,
   2.246 +it is the best location to do such global rewrites.
   2.247 +Besides, the MTA is conceptionally the right location because it
   2.248 +does the reverse mapping for incoming mail (aliasing), too.
   2.249 +The masquerading set up there is set up once for all
   2.250 +mail software on the system.
   2.251 +.Ci 0836c8000ccb34b59410ef1c15b1b7feac70ce5f
   2.252 +.P
   2.253 +The
   2.254 +.I username_extension
   2.255 +masquerading type did not replace the username but could append a suffix
   2.256 +to it.
   2.257 +The suffix needed to be specified by the
   2.258 +.Ev USERNAME_EXTENSION
   2.259 +environment variable.
   2.260 +It provided support for the
   2.261 +.I user-extension
   2.262 +feature of qmail and the similar
   2.263 +.I "plussed user
   2.264 +processing of sendmail.
   2.265 +The decision to remove this username_extension masquerading was
   2.266 +motivated by the fact that
   2.267 +.Pn spost
   2.268 +hadn't supported it.
   2.269 +.Ci 2abae0bfd0ad5bf898461e50aa4b466d641f23d9_username_extension
   2.270 +Mmh now provides a more general, though in this case less convenient,
   2.271 +kind of masquerading.
   2.272 +.P
   2.273 +The
   2.274 +.I draft_from
   2.275 +masquerading type instructed
   2.276 +.Pn post
   2.277 +to use the value of the `From:' header as SMTP envelope sender.
   2.278 +This allowes to replace the sender address completely.
   2.279 +.Ci b14ea6073f77b4359aaf3fddd0e105989db9
   2.280 +Mmh now offers a kind of masquerading similar in effect, but
   2.281 +with technical differences.
   2.282 +As mmh does not transfer messages itself, the local MTA has full control
   2.283 +over the sending address. Any masquerading mmh introduces may be reverted
   2.284 +by the MTA. In times of pedantic spam checking, an MTA will likely do so
   2.285 +to keep its own reputation up.
   2.286 +Nonetheless, the MUA can set the `From:' header and thus propose
   2.287 +a sender address to be used to the MTA.
   2.288 +The MTA may then decide to take that one or generate the canonical sender
   2.289 +address for use as envelope sender address.
   2.290 +.P
   2.291 +In mmh, the MTA will always extract the recipient and sender from the
   2.292 +headers (\c
   2.293 +.Pn sendmail 's
   2.294 +.Sw -t
   2.295 +switch).
   2.296 +The `From:' header of the draft may be set arbitrary by the user.
   2.297 +If it is missing, the canonical sender address will be generated by the MTA.
   2.298 +
   2.299 +.U3 "Remaining Options
   2.300 +.P
   2.301 +Two configure options remain in mmh.
   2.302 +One is the locking method to use:
   2.303 +.Sw --with-locking=[dot|fcntl|flock|lockf] .
   2.304 +Removing all other methods except the portable dot locking and having
   2.305 +that as default is appealing, but requires deeper investigation into the
   2.306 +topic.
   2.307 +The other,
   2.308 +.Sw --enable-debug ,
   2.309 +compiles the programs with debugging symbols and does not strip them.
   2.310 +This option is likely to stay.
   2.311  
   2.312  
   2.313  
   2.314 @@ -476,7 +733,7 @@
   2.315  
   2.316  
   2.317  
   2.318 -.H1 "Moderizing
   2.319 +.H1 "Modernizing
   2.320  
   2.321  
   2.322  .H2 "Removal of Code Relicts