docs/master

diff ch03.roff @ 72:bae9273b5802

Wrote about configure options (not finished yet).
author markus schnalke <meillo@marmaro.de>
date Sun, 03 Jun 2012 22:13:53 +0200
parents f80ced4e749b
children cefaa856d431
line diff
     1.1 --- a/ch03.roff	Sun Jun 03 17:32:49 2012 +0200
     1.2 +++ b/ch03.roff	Sun Jun 03 22:13:53 2012 +0200
     1.3 @@ -353,7 +353,7 @@
     1.4  in favor of using
     1.5  .Pn mhshow
     1.6  exclusively.
     1.7 -.Ci 4c1efdd
     1.8 +.Ci 4c1efddfd499300c7e74263e57d8aa137e84c853
     1.9  This decision follows the idea of orthogonal design.
    1.10  .P
    1.11  To allow this replacement,
    1.12 @@ -383,6 +383,91 @@
    1.13  
    1.14  .H2 "Removal of Configure Options
    1.15  .P
    1.16 +Choice is a double-edged sword.
    1.17 +It allows customization and thus better suiting solutions,
    1.18 +but that comes with costs.
    1.19 +First, there is the cost of code complexity to have choice.
    1.20 +Second, there is the cost of less tested setups, because there are
    1.21 +more possible setups and especially corner-cases.
    1.22 +Third, there is the cost of choice itself.
    1.23 +The code complexity affects the developers.
    1.24 +Less tested code affects both, users and developers.
    1.25 +The problem of choice affects the users, for once simply by having to
    1.26 +choose but also by complexer interfaces that require more documentation.
    1.27 +Whenever options add little advantages, they should be considered for
    1.28 +removal.
    1.29 +.P
    1.30 +I have reduced the number of project-specific configure options from 
    1.31 +fifteen to three.
    1.32 +.BU
    1.33 +With the removal of the mail transfer facilities five option vanished:
    1.34 +.IP \f(CW--with-mts=[smtp|sendmail]\fP
    1.35 +Specified the default mail transport service, which now is sendmail always.
    1.36 +.IP \f(CW--with-smtpservers=[server1...]\fP
    1.37 +Specified the default SMTP servers for the smtp mail transfer service.
    1.38 +.Ci 128545e06224233b7e91fc4c83f8830252fe16c9
    1.39 +.IP \f(CW--with-cyrus-sasl\fP
    1.40 +Enabled SASL support for mail transfer.
    1.41 +.IP \f(CW--with-tls\fP
    1.42 +Enabled TLS support for mail transfer.
    1.43 +.IP \f(CW--enable-pop\fP
    1.44 +Enabled the message retrieval facility.
    1.45 +.BU
    1.46 +--with-ndbm=ARG         use -lARG to link with ndbm
    1.47 +--with-ndbmheader=ARG   #include <ARG> to use ndbm
    1.48 +
    1.49 +.BU
    1.50 +The default backup prefix, i.e. the string that was prepended to message
    1.51 +filenames to tag them as deleted, had been the comma `\f(CW,\fP'.
    1.52 +There was a configure option to change the default to the hash symbol
    1.53 +`\f(CW#\fP':
    1.54 +.CW --with-hash-backup .
    1.55 +The implication of the hash symbol is that it introduces a comment
    1.56 +in the Unix shell.
    1.57 +Thus, the command line
    1.58 +.Cl "rm #13 #15
    1.59 +calls
    1.60 +.Pn rm
    1.61 +without arguments because the first hash symbol starts the comment
    1.62 +that reaches until the end of the line.
    1.63 +To delete the backup files,
    1.64 +.Cl "rm ./#13 ./#15"
    1.65 +needs to be used.
    1.66 +.\" XXX check historical background
    1.67 +Besides this effect, the choice was personal preference.
    1.68 +I removed the configure option but added the profile entry
    1.69 +.Pe backup-prefix ,
    1.70 +which allows to specify an arbitrary string as backup prefix.
    1.71 +.Ci 6c40d481d661d532dd527eaf34cebb6d3f8ed086
    1.72 +This did not remove the choice but moved it to a location where
    1.73 +it suited better.
    1.74 +Profile entries are the common method to change mmh's behavior.
    1.75 +The name of the
    1.76 +.Fn .mh-sequences ,
    1.77 +for instance, is specified there, too.
    1.78 +Moving the specification of the backup prefix there, appears to be right.
    1.79 +Eventually, the new trash folder obsoleted the concept of the
    1.80 +backup prefix completely.
    1.81 +(Well, there still are corner-cases to remove until the backup
    1.82 +prefix can be layed to rest, eventually.)
    1.83 +.\" FIXME: Do this work in the code!
    1.84 +
    1.85 +
    1.86 +.P
    1.87 +--with-editor=EDITOR    specify the default editor
    1.88 +--with-pager=PAGER      specify the default pager
    1.89 +.Ci 5d43a99db70c12a673028c7758c20cbe3e13ef5f
    1.90 +
    1.91 +.P
    1.92 +--disable-mhe           disable mhe support
    1.93 +.Ci a7ce7b4a580d77b6c2c4d980812beb589aa4c643
    1.94 +
    1.95 +.P
    1.96 +--enable-masquerade='draft_from mmailid username_extension' enable up to 3 types of address masquerading
    1.97 +--with-locking=[dot|fcntl|flock|lockf] specify the file locking method
    1.98 +--disable-locale        turn off locale features
    1.99 +
   1.100 +
   1.101  
   1.102  
   1.103  .H2 "Removal of switches