I'm trying to upgrade a server from Exim 3.35 to 4.02. Said server has
Mailman 2.0.x installed, so one of the directors in the Exim 3 config is
this:
list_director:
driver = smartuser
require_files = MAILMAN_HOME/lists/${lc:$local_part}/config.db
transport = list_transport
This was changed very slightly by convert4r4 for the Exim 4 config:
list_director:
driver = accept
require_files = MAILMAN_HOME/lists/${lc:$local_part}/config.db
retry_use_local_part
transport = list_transport
Looks fine so far, right?
Well, let's take an address that's handled by this director just fine
with Exim 3:
$ exim -bt python-dev@???
python-dev@???
deliver to python-dev in domain python.org
director = list_director, transport = list_transport
Now try it with Exim 4:
$ exim4 -bt python-dev@???
python-dev@??? cannot be resolved at this time:
failed to expand "/usr/local/mailman/lists/${lc" for require_files: "${lc" is not a known operator (or a } is missing in a variable reference)
Huh? Since when is "lc" not a known operator? Naturally, this simple
expansion seems to work just fine with "exim -be". Also, if I change
the expansion to
require_files = MAILMAN_HOME/lists/${lc:${local_part}}/config.db
then Exim 4 still barfs on it.
Note that downcasing the local part seems to be quite unnecessary; if I
change the require_files line in question to
require_files = MAILMAN_HOME/lists/$local_part/config.db
then everything works fine. However, I'm deeply confused about Exim's
complaint here. What the heck is going on? Am I blind, or is there a
bug here?
Greg
--
Greg Ward - software developer gward@???
MEMS Exchange http://www.mems-exchange.org