Mercurial > docs > master
comparison ch03.roff @ 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 | bae9273b5802 |
children | 2e61e0004a8f |
comparison
equal
deleted
inserted
replaced
73:4e1715537e2f | 74:cefaa856d431 |
---|---|
397 Whenever options add little advantages, they should be considered for | 397 Whenever options add little advantages, they should be considered for |
398 removal. | 398 removal. |
399 .P | 399 .P |
400 I have reduced the number of project-specific configure options from | 400 I have reduced the number of project-specific configure options from |
401 fifteen to three. | 401 fifteen to three. |
402 .BU | 402 |
403 .U3 "Mail Transfer Facility Options | |
404 .P | |
403 With the removal of the mail transfer facilities five option vanished: | 405 With the removal of the mail transfer facilities five option vanished: |
404 .IP \f(CW--with-mts=[smtp|sendmail]\fP | 406 .IP \f(CW--with-mts=[smtp|sendmail]\fP |
405 Specified the default mail transport service, which now is sendmail always. | 407 Specified the default mail transport service, which now is sendmail always. |
406 .IP \f(CW--with-smtpservers=[server1...]\fP | 408 .IP \f(CW--with-smtpservers=[server1...]\fP |
407 Specified the default SMTP servers for the smtp mail transfer service. | 409 Specified the default SMTP servers for the smtp mail transfer service. |
410 Enabled SASL support for mail transfer. | 412 Enabled SASL support for mail transfer. |
411 .IP \f(CW--with-tls\fP | 413 .IP \f(CW--with-tls\fP |
412 Enabled TLS support for mail transfer. | 414 Enabled TLS support for mail transfer. |
413 .IP \f(CW--enable-pop\fP | 415 .IP \f(CW--enable-pop\fP |
414 Enabled the message retrieval facility. | 416 Enabled the message retrieval facility. |
415 .BU | 417 |
416 --with-ndbm=ARG use -lARG to link with ndbm | 418 .U3 "Backup Prefix |
417 --with-ndbmheader=ARG #include <ARG> to use ndbm | 419 .P |
418 | |
419 .BU | |
420 The default backup prefix, i.e. the string that was prepended to message | 420 The default backup prefix, i.e. the string that was prepended to message |
421 filenames to tag them as deleted, had been the comma `\f(CW,\fP'. | 421 filenames to tag them as deleted, had been the comma `\f(CW,\fP'. |
422 There was a configure option to change the default to the hash symbol | 422 There was a configure option to change the default to the hash symbol |
423 `\f(CW#\fP': | 423 `\f(CW#\fP': |
424 .CW --with-hash-backup . | 424 .CW --with-hash-backup . |
449 Eventually, the new trash folder obsoleted the concept of the | 449 Eventually, the new trash folder obsoleted the concept of the |
450 backup prefix completely. | 450 backup prefix completely. |
451 (Well, there still are corner-cases to remove until the backup | 451 (Well, there still are corner-cases to remove until the backup |
452 prefix can be layed to rest, eventually.) | 452 prefix can be layed to rest, eventually.) |
453 .\" FIXME: Do this work in the code! | 453 .\" FIXME: Do this work in the code! |
454 | 454 .P |
455 | 455 The two configure options |
456 .P | 456 .CW --with-editor=EDITOR |
457 --with-editor=EDITOR specify the default editor | 457 .CW --with-pager=PAGER |
458 --with-pager=PAGER specify the default pager | 458 were used to specify the default editor and pager at configure time. |
459 Doing so at configure time made sense in the Eighties, | |
460 when the available editors and pagers varied more across different systems. | |
461 Today, the situation is much more homegenic. | |
462 The programs | |
463 .Pn vi | |
464 and | |
465 .Pn more | |
466 can be expected to be available anywhere on every Unix system, | |
467 as they are specified by POSIX since two decades. | |
468 (The specifications for | |
469 .Pn vi | |
470 and | |
471 .Pn more | |
472 appeared in | |
473 .[ | |
474 posix 1987 | |
475 .] | |
476 and, | |
477 .[ | |
478 posix 1992 | |
479 .] | |
480 respectively.) | |
481 As a first step, these two tools were hard-coded as defaults. | |
459 .Ci 5d43a99db70c12a673028c7758c20cbe3e13ef5f | 482 .Ci 5d43a99db70c12a673028c7758c20cbe3e13ef5f |
460 | 483 Not changed were the |
461 .P | 484 .Pe editor |
462 --disable-mhe disable mhe support | 485 and |
486 .Pe moreproc | |
487 profile entries, which allowed the user to change the default | |
488 by personal preference. | |
489 Later, the concept was reworked to respect the standard environment | |
490 variables | |
491 .Ev VISUAL | |
492 and | |
493 .Ev PAGER | |
494 if they were set. | |
495 Today, mmh determines the editor to use in the following order, | |
496 taking the first available and non-empty item: | |
497 .IP (1) | |
498 Environment variable | |
499 .Ev MMHEDITOR | |
500 .IP (2) | |
501 Profile entry | |
502 .Pe Editor | |
503 .IP (3) | |
504 Environment variable | |
505 .Ev VISUAL | |
506 .IP (4) | |
507 Environment variable | |
508 .Ev EDITOR | |
509 .IP (5) | |
510 Command | |
511 .Pn vi . | |
512 .P | |
513 The pager to use is deteminded in the following order, | |
514 also taking the first available and non-empty item: | |
515 .IP (1) | |
516 Environment variable | |
517 .Ev MMHPAGER | |
518 .IP (2) | |
519 Profile entry | |
520 .Pe Pager | |
521 (replaces | |
522 .Pe moreproc ) | |
523 .IP (3) | |
524 Environment variable | |
525 .Ev PAGER | |
526 .IP (4) | |
527 Command | |
528 .Pn more . | |
529 .P | |
530 .Ci f85f4b7ae62e3d05a945dcd46ead51f0a2a89a9b | |
531 .Ci 0c4214ea2aec6497d0d67b436bbee9bc1d225f1e | |
532 .P | |
533 The new behavior confirms better to the common behavior on Unix | |
534 systems, as | |
535 .Ev VISUAL /\c | |
536 .Ev EDITOR | |
537 and | |
538 .Ev PAGER | |
539 are respected. | |
540 Additionally, the new approach is more uniform and | |
541 without surprise for users. | |
542 | |
543 .U3 "Locale | |
544 .P | |
545 The configure option | |
546 .Sw --disable-locale | |
547 was removed because today there's hardly any need to disable locale | |
548 support. | |
549 .Ci ccf4f175ef4c4e7522f9510a4a1149c15d810dd9 | |
550 | |
551 .U3 "\fLslocal\fP Supress Duplicates | |
552 .P | |
553 .Pn slocal | |
554 is an MDA included in mmh. | |
555 This is a violation of the idea that mmh is a MUA only. | |
556 .Pn slocal | |
557 should become a separate project. | |
558 Nonetheless, ouf of convenience and due to lack of convincement, | |
559 yet it remains being part of mmh. | |
560 This is likely to change in the future. | |
561 Already, | |
562 .Pn slocal was stripped down. | |
563 It used to depend on | |
564 .I ndbm , | |
565 a database library. | |
566 The database is used to store the message ids of all messages delivered. | |
567 This enables | |
568 .Pn slocal | |
569 to suppress delivering the same message to the same user twice. | |
570 (This features was enabled by the | |
571 .Sw -suppressdup | |
572 switch.) | |
573 .P | |
574 A variety of version of the database library exist. | |
575 Complicated autoconf code was needed to detect them correctly. | |
576 Further more, the configure switches | |
577 .Sw --with-ndbm=ARG | |
578 and | |
579 .Sw --with-ndbmheader=ARG | |
580 were added to help with difficult setups that would | |
581 not be detected automatically. | |
582 .P | |
583 By removing the suppress duplicates feature of | |
584 .Pn slocal , | |
585 the dependency on | |
586 .I ndbm | |
587 was removed and 120 lines of complex autoconf could be saved. | |
588 .Ci ecd6d6a20cb7a1507e3a20d6c4cb3a1cf14c6bbf | |
589 The change removed funtionality too, but the value it would have added | |
590 is minor to the weight loss by dropping the dependency and | |
591 the complex autoconf code. | |
592 | |
593 .U3 "mh-e Support | |
594 .P | |
595 The configure option | |
596 .Sw --disable-mhe | |
597 was removed when the mh-e support was reworked. | |
598 Mh-e is the Emacs front-end to MH. | |
599 It requires MH to act different in some minor ways. | |
600 The configure option could switch the extension off. | |
601 After removing support for old versions of mh-e, | |
602 only the | |
603 .Sw -build | |
604 switches for | |
605 .Pn forw | |
606 and | |
607 .Pn repl | |
608 are left to be mh-e-specific. | |
609 They are now always available because they add little code and complexity. | |
610 This change was first done in nmh and thereafter merged into mmh. | |
611 The interface changes in mmh require mh-e to be adjusted to use mmh | |
612 as the back-end. This requires minor changes to mh-e, though removing | |
613 the | |
614 .Sw -build | |
615 switches would require larger adjustments. | |
616 The | |
617 .Sw --disable-mhe | |
618 configure option was removed and the remaining support for mh-e is always | |
619 built in. | |
463 .Ci a7ce7b4a580d77b6c2c4d980812beb589aa4c643 | 620 .Ci a7ce7b4a580d77b6c2c4d980812beb589aa4c643 |
464 | 621 Removing the option removed a second code setup that would have |
465 .P | 622 needed to be tested. |
466 --enable-masquerade='draft_from mmailid username_extension' enable up to 3 types of address masquerading | 623 |
467 --with-locking=[dot|fcntl|flock|lockf] specify the file locking method | 624 .U3 "Masquerading |
468 --disable-locale turn off locale features | 625 .P |
626 The configure option | |
627 .Sw --enable-masquerade | |
628 could take up to three items: draft_from, mmailid, username_extension. | |
629 They activated different types of address masquerading. | |
630 All of them were implemented in the SMTP-speaking | |
631 .Pn post | |
632 command. | |
633 Mmh no longer speaks SMTP and the replacing | |
634 .Pn spost | |
635 command no longer does MTA jobs like this one. | |
636 Because address masquerading is an MTA's task and mmh does not cover | |
637 this field anymore, the funtion needs to be implemented in the | |
638 external MTA used. | |
639 .P | |
640 The | |
641 .I mmailid | |
642 masquerading type is the oldest one of the three and the only one | |
643 available in the original MH. | |
644 It provided a | |
645 .I username | |
646 to | |
647 .I fakeusername | |
648 mapping, based on the value of the password file's GECOS field. | |
649 The man page | |
650 .Mp mh-tailor(5) | |
651 described the use case as being the following: | |
652 .QP | |
653 This is useful if you want the messages you send to always | |
654 appear to come from the name of an MTA alias rather than your | |
655 actual account name. For instance, many organizations set up | |
656 `First.Last' sendmail aliases for all users. If this is | |
657 the case, the GECOS field for each user should look like: | |
658 ``First [Middle] Last <First.Last>'' | |
659 .P | |
660 As mmh sends outgoing mail via the local MTA only, | |
661 it is the best location to do such global rewrites. | |
662 Besides, the MTA is conceptionally the right location because it | |
663 does the reverse mapping for incoming mail (aliasing), too. | |
664 The masquerading set up there is set up once for all | |
665 mail software on the system. | |
666 .Ci 0836c8000ccb34b59410ef1c15b1b7feac70ce5f | |
667 .P | |
668 The | |
669 .I username_extension | |
670 masquerading type did not replace the username but could append a suffix | |
671 to it. | |
672 The suffix needed to be specified by the | |
673 .Ev USERNAME_EXTENSION | |
674 environment variable. | |
675 It provided support for the | |
676 .I user-extension | |
677 feature of qmail and the similar | |
678 .I "plussed user | |
679 processing of sendmail. | |
680 The decision to remove this username_extension masquerading was | |
681 motivated by the fact that | |
682 .Pn spost | |
683 hadn't supported it. | |
684 .Ci 2abae0bfd0ad5bf898461e50aa4b466d641f23d9_username_extension | |
685 Mmh now provides a more general, though in this case less convenient, | |
686 kind of masquerading. | |
687 .P | |
688 The | |
689 .I draft_from | |
690 masquerading type instructed | |
691 .Pn post | |
692 to use the value of the `From:' header as SMTP envelope sender. | |
693 This allowes to replace the sender address completely. | |
694 .Ci b14ea6073f77b4359aaf3fddd0e105989db9 | |
695 Mmh now offers a kind of masquerading similar in effect, but | |
696 with technical differences. | |
697 As mmh does not transfer messages itself, the local MTA has full control | |
698 over the sending address. Any masquerading mmh introduces may be reverted | |
699 by the MTA. In times of pedantic spam checking, an MTA will likely do so | |
700 to keep its own reputation up. | |
701 Nonetheless, the MUA can set the `From:' header and thus propose | |
702 a sender address to be used to the MTA. | |
703 The MTA may then decide to take that one or generate the canonical sender | |
704 address for use as envelope sender address. | |
705 .P | |
706 In mmh, the MTA will always extract the recipient and sender from the | |
707 headers (\c | |
708 .Pn sendmail 's | |
709 .Sw -t | |
710 switch). | |
711 The `From:' header of the draft may be set arbitrary by the user. | |
712 If it is missing, the canonical sender address will be generated by the MTA. | |
713 | |
714 .U3 "Remaining Options | |
715 .P | |
716 Two configure options remain in mmh. | |
717 One is the locking method to use: | |
718 .Sw --with-locking=[dot|fcntl|flock|lockf] . | |
719 Removing all other methods except the portable dot locking and having | |
720 that as default is appealing, but requires deeper investigation into the | |
721 topic. | |
722 The other, | |
723 .Sw --enable-debug , | |
724 compiles the programs with debugging symbols and does not strip them. | |
725 This option is likely to stay. | |
469 | 726 |
470 | 727 |
471 | 728 |
472 | 729 |
473 .H2 "Removal of switches | 730 .H2 "Removal of switches |
474 .P | 731 .P |
475 | 732 |
476 | 733 |
477 | 734 |
478 | 735 |
479 .H1 "Moderizing | 736 .H1 "Modernizing |
480 | 737 |
481 | 738 |
482 .H2 "Removal of Code Relicts | 739 .H2 "Removal of Code Relicts |
483 .P | 740 .P |
484 The code base of mmh originates from the late Seventies, | 741 The code base of mmh originates from the late Seventies, |