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