home *** CD-ROM | disk | FTP | other *** search
- =====================================================================
- Converting a sendmail file into ease
-
-
- Step 1. Use cfc to convert the sendmail file into ease.
- You may want to use "make convert" in the top Makefile
-
- As a start, use the following arguments to cfc
-
- SunOS 4.0, /usr/lib/sendmail.subsidiary.cf
- => cfc -s -C V < /usr/lib/sendmail.subsidiary.cf>sendmail.ease
-
- SunOS 4.0, /usr/lib/sendmail.main.cf
-
- => cfc -s < /usr/lib/sendmail.main.cf>sendmail.ease
-
-
- Ultrix 3.0:
-
- => cfc -d -C SDIZFN </etc/sendmail.cf >sendmail.ease
-
- IDA sendmail
-
- => cfc -i
-
- 4.2 sendmail
-
- => cfc -c
-
- 4.3 sendmail
-
- => cdc -u
-
- HP/UX
- => cfc -i -CGUS
-
-
- Step 2. Convert the ease file to cf:
-
- % et <sendmail.ease >sendmail.cf
-
- Look at the errors and warnings.
-
- Most of these errors can be eliminated by using the right
- flags on cfc. Make sure that you specify all of the
- classes (using the -C flag ) that you need, which generate
- the matching field definitions for any_in_? fields.
- Then repeat the cf-> ease translation with the necessary
- -C XYZ flags.
-
- The remaining errors are either warnings or mistakes
- in the translation. NOTE: - some configuration files use macros
- that are not defined. For instance, Sun's sendmail.main.cf has
- an undefined D macro. Ultrix has several undefined macros, that if
- you define them, cause your sendmail to exhibit change behavior.
- These are warnings, and are perfectly fine. If you want to
- you can define the missing rulesets. Don't define the missing
- macros unless you examine the sendmail rules and see what happens with
- the change.
-
- So look at the warnings and errors, and repeat step 1 until you
- feel comfortable with the change.
-
- If you can't get cfc/ease to accept the new syntax, use the
- asm(" ") construct to work around it and report the bugs.
-
- Step 3. Verify the ease output matches the original sendmail
-
- You can use "make test_conversion" it you wish
-
- At this point, you should verify that the ease output is identical to
- the original sendmail.cf file. Use the script cfdiff to
- compare the original sendmail.cf file with the ease output file.
-
- That is, if your original sendmail file is /etc/sendmail.cf,
- and the new one is ./sendmail.cf, do a
-
- set path = ( $cwd/bin $path );rehash;cfdiff /etc/sendmail.cf ./sendmail.cf
-
- You will see some differences in lines that have been split into
- two lines, and the "Ob" option is converted into the more
- verbose "Obackground" option. If there is any other difference,
- please send me a bug report, and see if you can make changes to your
- ease input file to match the original file. You may need the asm("")
- command.
-
- If your diff program has the -w option, you can ignore spaces in the
- cf files. Occasionally ease inserts some extra spaces. Or the
- original sendmail file has extra spaces. (e.g. SunOS).
- See the script cfdiff.
-
- Step 4. Once you have the ease file in good form, put it under sccs
- control, and put the version number (%W% in the V macro
- definition, so the "Received-by" header line reflects the revision.)
-
- You are now ready to debug your sendmail file.
- See the file TESTING
- ============================================================================
-
- If you find these programs useful, or if you have suggestions or changes,
- please drop me a line.
-
- Bruce Barnett
- General Electric
- Corporate Research and Development
- P. O. Box 8, 1 River Road
- Schenectady, NY 12302
-
- barnett@crdgw1.ge.com
-