Next Previous Contents

7. Customizing ezmlm-make operation via ezmlmrc

7.1 Using ezmlm-make to edit existing lists.

With ezmlm-make(1) (from ezmlm-idx >=0.21) you can use the ``-e'' switch to edit existing lists. Invoke the ezmlm-make(1) command just as you would to create the list anew, but change the switches to reflect the desired change, and add the ``-e'' switch. ezmlm-make will accept preexisting directories and overwrite or remove files to change the setup. The message counter (DIR/num), digest counters (DIR/dignum and DIR/digissue), the key (DIR/key) and the message archive will not be affected.

If the list has been created or previously edited with ezmlm-make(1) from ezmlm-idx>=0.23, the list remembers (via DIR/config) the arguments and the switches. All you have to do is to use the ezmlm-make(1) ``-+'' switch and specify options you wish to change, or use the ``-e'' switch and specify all non-default options you'd like to use.

NOTE: ezmlm-make(1) ``-e'' will OVERWRITE any manual customizations you have made to text files other than DIR/headeradd, DIR/mod-sub, DIR/sub-ok, DIR/info, and DIR/faq. To make general customizations, please change ezmlmrc(5) (see What is ezmlmrc? or read on) instead and use the ``-c'' switch as well. DO NOT use this option to change production lists without testing it on other lists first. Also, for some changes, removing or adding a flag is sufficient (see How do I quickly change properties of my list).

7.2 What is ezmlmrc?

ezmlm-make(1) has a number of default switches that through ezmlmrc(5) have defined functions. These allow creation of many standard lists.

In addition, ezmlm-make(1) operation is fully customizable via modification of the template file, ezmlmrc(5) or .ezmlmrc. A default ezmlmrc(5) is installed in the ezmlm binary directory. The system administrator can install a system-wide default ezmlmrc(5) file in /etc/ezmlmrc (or symlinked from there) which overrides the file in the ezmlm binary directory. If the ezmlm-make(1) ``-c'' (custom) switch is used, ezmlm-make(1) will look for .ezmlmrc in the ``dotdir'', i.e. the directory in which the .qmail-list links are placed. This is usually a set directory for a given user/virtual domain (usually, the home directory for the user controlling the lists).

ezmlmrc(5) controls everything except creation of the list directory itself and the key used for cookie generation. The syntax of ezmlmrc(5) is documented in ezmlm-make(1), the ezmlmrc(5) man page, and in the ezmlmrc(5) file installed in the ezmlm binary directory. ezmlm-make limits its effects to within the list ``dot'' and ``DIR'' directories. In the ``dotdir'', only links to within ``DIR'' can be created.

7.3 Changing defaults for DIR/text/ files.

Copy the ezmlmrc(5) file from the ezmlm bin directory to .ezmlmrc in your .qmail file base directory (usually your home directory):

% cp /usr/local/bin/ezmlm/ezmlmrc ~/.ezmlmrc

The base ezmlmrc(5) file lives in the ezmlm binary directory, which may differ from ``/usr/local/bin/ezmlm/ezmlmrc'' if you do not have a default setup. If your system administrator has placed a ezmlmrc(5) file into the /etc directory, start with that one instead, as it is likely to already contain some useful local customization and comments.

Now edit ~/.ezmlmrc. Find the tag corresponding to the text file you want to change, e.g. ``</text/mod-request/>'', and modify it appropriately. Some tags have conditional flags, so that succeeding text is copied only if specific switches are on/off. Thus, text succeeding ``</text/file#rms/>'' is copied into DIR/text/file if and only if the ezmlm-make(1) ``-rms'' switches are all used. For more info, see documentation in ezmlmrc(5) and the ezmlm-make(1) man page. To invoke a custom .ezmlmrc file, use the ezmlm-make(1) ``-c'' (custom) switch.

7.4 Changing default moderator directories.

See above. Edit the .ezmlmrc file to add a directory name to e.g. ``</modsub/#s>''. Also, you need to create that directory, and the subscribers subdirectory under it. NOTE: DIR/mod/ is still required as the base directory for the message moderation queue.

7.5 Adapting ezmlm-make for virtual domains.

This is not necessary if you use qmail>=1.02 and ezmlm-idx>=0.32.

The problem with virtual domains is that ezmlm-make(1) by default puts the list name in DIR/inlocal. However, if the domain host1.dom.com is controlled by the user ``virt'', then the local part of the address for the list list@host.dom.com will be ``virt-list'', not ``list''. This is easily accommodated by putting a .ezmlmrc file in ~virt/. In the ``</inlocal/>'' section of this file, enter ``virt-<#L#>'' instead of ``<#L#>''. Now, all lists created under ~virt will be automatically set up correctly.

Similarly, if host1.dom.com is controlled by virt-dom1 and host2.dom.com by ``virt-dom2'', inlocal for list list@host1.dom.com should be ``virt-dom1-list'' and for list@host2.dom.com should be ``virt-dom2-list''. To accommodate this, put ``virt-<#1#>-<#L#>'' in ``</inlocal/>''.

Running:

% ezmlm-make -c ~virt/LIST ~virt/.qmail-dom1-list \
           list host1.dom.com

will produce a LIST/inlocal of virt-dom1-list by substituting the first part between two ``-'' (dom1) for ``<#1#>''. Two levels of dashes are accommodated, i.e. ``<#2#>'' will be replaced by the second part between two ``-'' (in this case empty (Sic!)). For more info, see ezmlm-make(1) and comments in ezmlmrc.

7.6 Setting up ezmlm-make for special situations.

Ezmlm-make is very flexible. There are only three sets of special command line switches: ``-vV'' for version info, ``-cC'' controlling the use of a custom file .ezmlmrc in the ``dot'' directory, and ``-eE'' for edit mode (i.e. reconfiguration of existing list setups). All other switches are soft, i.e. controlled through ezmlmrc(5). Many switches, have special meanings via ezmlmrc(5) and are documented in the man page. Any other switches can be used for customization (NOTE: we may use switches other than ``-xyz'' for specific purposes in future versions.) The ``-xyz'' switches will always be available for your use, with the ``-x'' switch being configured for some demo/special features in the distributed ezmlmrc(5). You can use them for anything you like. They are by default off=false. The complement of these switches is ``-XYZ'' (by default on=true). You can use these to cause specific changes in the list setup if a given switch is used. For an example, see the ``-x'' switch as used and documented in the default ezmlmrc(5) file. The switches ``-aip'' are set by default to be backwards compatible with ezmlm-0.53. Other switches are ``off'' by default.

Switches ``-a-z'' and ``-A-Z'' take no arguments. Switches ``-0'' and and ``-3-9'' take arguments. When the ezmlm-make(1) ``-+'' switch is used, the current settings for all these switches are read from the list's DIR/config (if available).


Next Previous Contents