Phoenyx upgrade status report
Finally, I have the new mail server fully configured. It's a pain in the butt transitioning to a completely new mail server system (from Sendmail to Exim), and trying to figure out Debian Linux's convoluted config file system for Exim at the same time.
I ended up installing Exim with the default config that comes with the source to learn how Exim works, then I converted over to the Debian configuration.
See, Debian took what was a monolithic config file, broke it up into pieces so that one basic concept was in each file, and then arranged the files by directory... they get concatenated together, with a little lot of macro substitution going on. Then they used lots of if-defined's and variables, and then used a config file to a config file (really... it's called update-exim4.conf.conf) with a script that takes variables in that file and assigns them to more variables in the main config.
So in the default config, I've got, say, the Exim keyword "local_domains". I can look it up in the manual and I know what it's all about. It's the list of domains the server delivers mail locally for.
So to figure this out, I looked at the generated config file and tracked down local_domains and found it was set to the macro MAIN_LOCAL_DOMAINS. So I searched backwards to find that MAIN_LOCAL_DOMAINS was set to DC_localdomains. So I searched backwards again to find that DC_localdomains was set to an explicit value. To figure out where this value came from, I had to troll through the script that builds the config file to find where DC_localdomains got set to find the user-set variable name.
And that was for a very simple parameter. This makes learning how Exim works while reading the ($70!) manual rather tedious when every other parameter or value is a macro derived from a macro derived from some value generated by a config script.
But I think I've got the whole thing running on Debian's configuration files, doing what I had it doing on my modified source configuration. And then some... the catch here is that the Debian config contains tons more functionality, and gets upgraded pretty smoothly (the point of breaking the thing up is so that you only have to merge changes on the little sections you've changed and not and entire 600+ line file).