home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Source Code 1992 March
/
Source_Code_CD-ROM_Walnut_Creek_March_1992.iso
/
usenet
/
altsrcs
/
2
/
2843
/
CONVERTING
next >
Wrap
Text File
|
1991-02-23
|
3KB
|
110 lines
=====================================================================
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