Short version: Using a split config, what is the appropriate way to set or modify variables such as CHECK_RCPT_VERIFY_SENDER, CHECK_RCPT_REVERSE_DNS, and MAIN_TRUSTED_USERS? If there are several ways (e.g., with or without debconf), what is the recommended alternative? I find the documentation confusing. Long version: I just upgraded to exim4-config (4.50-6). Manually merging in changes caused me to look at some of the split config files I use, and I notice a lot of things like .ifndef MAIN_TRUSTED_USERS MAIN_TRUSTED_USERS = uucp .endif trusted_users = MAIN_TRUSTED_USERS. In particular, I made manual tweaks that seem now to be related to CHECK_RCPT_VERIFY_SENDER CHECK_RCPT_REVERSE_DNS MAIN_TRUSTED_USERS What is the appropriate way to set these variables? At first I thought debconf manages them, but after reading the docs I suspect I should edit exim4.conf.template. Is that correct? Hmm, I just noticed /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs and the other stuff in main/. Maybe I should tweak there (in fact, one of the changes I had made was to 02_exim4-config_options)? But not all the variables seem present. The reason I''m not sure is that several pieces of documentation seem to say that exim4.conf.template is not used if the configuration is split. /usr/share/doc/exim4-base/README.Debian "If you want to tweak the configuration, please see the configuration files in /etc/exim4/conf.d, and /etc/exim4/exim4.conf.template." That makes it sound as if the latter is the right place. But later README.Debian says "Our packages offer two ... possibilities: #1 Generate exim''s configuration from /etc/exim4/exim4.conf.template #2 Generate exim''s configuration from the multiple files in /etc/exim4/conf.d/." which sounds as if it''s one or the other, but not both. Similarly, "Depending on the value of dc_use_split_config, it either - takes all the files below /etc/exim4/conf.d/ and concatenates them together or - uses exim4.conf.template as input." The man page update-exim4.conf.8 says (sorry about the wrapping) The script update-exim4.conf generates the main configuration files ... by merging the data in the template file /etc/exim4/exim4.conf.template or the ones in the /etc/exim4/conf.d directory tree respectively and /etc/exim4/update-exim4.conf.conf to the output file /var/lib/exim4/config.autogenerated. Depending on the setting of dc_use_split_config in /etc/exim4/update-exim4.conf.conf update-exim4.conf either sorts the files in the subdirectories main, acl, router, transport, retry, rewrite and auth of /etc/exim4/conf.d in the lexical sort order, con- catenates them and replaces the patterns DEBCONFsomethingDEBCONF or only replaces the patterns DEBCONFsomethingDEBCONF listed in /etc/exim4/exim4.conf.template." Again, this sounds as if it''s one or the other. I also have some feedback: I had trouble finding the files mentioned above. When I started with my question about where the variables were set, I went to /usr/share/doc/exim4-config. Nothing. Poking around, I found exim4.conf.template, which pointed me at the doc in exim4-base. exim4.conf.template also includes comments describing the role of this file, but I wasn''t sure what they meant (particularly after I looked at the other docs). I also initially missed that exim4.conf.template and update-exim4.conf.conf were different files (yes, it seems obvious now), which further confused me. Finally, the pattern in which there are DEBCONF vars, DC vars, and dc vars is also confusing to me, as is the order of which overrides which. -- Ross Boylan wk: (415) 502-4031 530 Parnassus Avenue (Library) rm 115-4 ross@biostat.ucsf.edu Dept of Epidemiology and Biostatistics fax: (415) 476-9856 University of California, San Francisco San Francisco, CA 94143-0840 hm: (415) 550-1062
On 2005-05-29 Ross Boylan <ross@biostat.ucsf.edu> wrote:> Short version:> Using a split config, what is the appropriate way to set or modify > variables such as CHECK_RCPT_VERIFY_SENDER, CHECK_RCPT_REVERSE_DNS, and > MAIN_TRUSTED_USERS?Hello, /etc/exim4/conf.d/main/00local That is new file, that way you want have to do the dpkg-dance "conffile modified. - new, old, diff?"). [...]> What is the appropriate way to set these variables? At first I thought > debconf manages them, but after reading the docs I suspect I should edit > exim4.conf.template. Is that correct?If you are using unsplit, you should edit exim4.conf.template (or in 4.50-8 and later /etc/exim4/exim4.conf.localmacros) else place them in a new file, that is read before the others. exim4.conf.template is only used for unsplit. [...]> The reason I''m not sure is that several pieces of documentation seem to > say that exim4.conf.template is not used if the configuration is split.correct.> /usr/share/doc/exim4-base/README.Debian > "If you want to tweak the configuration, please see the configuration > files in /etc/exim4/conf.d, and /etc/exim4/exim4.conf.template." > That makes it sound as if the latter is the right place.[...] Does it? Have you got a suggestion for improving this? cu andreas -- "See, I told you they''d listen to Reason," [SPOILER] Svfurlr fnlf, fuhggvat qbja gur juveyvat tha. Neal Stephenson in "Snow Crash" http://downhill.aus.cc/
Hi, On Sat, May 28, 2005 at 05:41:15PM -0700, Ross Boylan wrote:> Short version: > > Using a split config, what is the appropriate way to set or modify > variables such as CHECK_RCPT_VERIFY_SENDER, CHECK_RCPT_REVERSE_DNS, and > MAIN_TRUSTED_USERS? If there are several ways (e.g., with or without > debconf), what is the recommended alternative? I find the documentation > confusing.Does README.Debian.gz from 4.50-8 help?> The man page update-exim4.conf.8 says (sorry about the wrapping)[snip]> Again, this sounds as if it''s one or the other.Yes, it is.> I also have some feedback: I had trouble finding the files mentioned > above.So you are saying that /etc/exim4/exim4.conf.template, /etc/exim4/update-exim4.conf.conf and /var/lib/exim4/config.autogenerated do not exist on your system, and that /etc/exim4/conf.d doesn''t have any files?> Finally, the pattern in which there are DEBCONF vars, DC vars, and dc > vars is also confusing to me, as is the order of which overrides which.This is complicated, yes :-( Any idea how to improve docs? Greetings Marc -- ----------------------------------------------------------------------------- Marc Haber | "I don''t trust Computers. They | Mailadresse im Header Mannheim, Germany | lose things." Winona Ryder | Fon: *49 621 72739834 Nordisch by Nature | How to make an American Quilt | Fax: *49 621 72739835
On Sun, 2005-05-29 at 08:10 +0200, Andreas Metzler wrote:> On 2005-05-29 Ross Boylan <ross@biostat.ucsf.edu> wrote: > > Short version: > > > Using a split config, what is the appropriate way to set or modify > > variables such as CHECK_RCPT_VERIFY_SENDER, CHECK_RCPT_REVERSE_DNS, and > > MAIN_TRUSTED_USERS? > > Hello, > /etc/exim4/conf.d/main/00local > > That is new file, that way you want have to do the dpkg-dance > "conffile modified. - new, old, diff?"). > > [...] > > What is the appropriate way to set these variables? At first I thought > > debconf manages them, but after reading the docs I suspect I should edit > > exim4.conf.template. Is that correct? > > If you are using unsplit, you should edit exim4.conf.template (or in > 4.50-8 and later /etc/exim4/exim4.conf.localmacros) else place them > in a new file, that is read before the others.I assume "else" mean "if you use split". That was the missing piece for me, and I think the 4.50-8 docs are much clearer on this. I want to double-check that stuff I put in main/00_local is read before things in the acl/ directory (for example). The new README seems to indicate everything can go under main, and the update-exim4.conf manpage indicates main is read first. Since the general logic is by alphabetical order, and acl precedes main, I''m a little concerned changes to acl need to go in acl/00_local. Proposed change update-exim4.conf manpage, to make that interpretation clearer (as well as clarifying some other things, indicated in square brackets in the original): Current Depending [how?] on the setting of dc_use_split_config in /etc/exim4/update-exim4.conf.conf update-exim4.conf either sorts the files in the subdirectories main, acl, router, transport, retry, rewrite and auth [in that order?] of /etc/exim4/conf.d in the lexical sort order [of what?], con- catenates them and replaces the patterns DEBCONFsomethingDEBCONF or only replaces the patterns DEBCONFsomethingDEBCONF listed in /etc/exim4/exim4.conf.template. It does not change the other contents of these files. This makes it very simple to make small changes to the configuration and still have the benefits of debconf. Proposed If dc_use_split_config in /etc/exim4/update-exim4.conf.conf specifies a split configuration [still don''t say exactly how, but make clear this is the split config case, which was only implicit before], update-exim4.conf processes the /etc/exim4/conf.d subdirectories in the order main, acl, router, transport, retry, rewrite and auth. Within each directory it takes files in lexical sort order by file name. It concatenates all these files, making the Debconf replacement described below. If you do not have a split configuration, update-exim4.conf uses only /etc/exim4/exim4.conf.template. In either case, before outputing the result to /var/lib/exim4/config.autogenerated, update-exim4.conf replaces the patterns DEBCONFsomethingDEBCONF with the contents of dc_something from /etc/exim4/update-exim4.conf.conf. It makes no other changes. This makes it very simple to make small changes to the configuration and still have the benefits of debconf.> > exim4.conf.template is only used for unsplit. > > [...] > > The reason I''m not sure is that several pieces of documentation seem to > > say that exim4.conf.template is not used if the configuration is split. > > correct. > > > /usr/share/doc/exim4-base/README.Debian > > "If you want to tweak the configuration, please see the configuration > > files in /etc/exim4/conf.d, and /etc/exim4/exim4.conf.template." > > That makes it sound as if the latter is the right place. > [...] > > Does it? Have you got a suggestion for improving this?If you want to tweak the configuration you should modify /etc/exim4/exim4.conf.template if you have an "unsplit" configuration. If you have a "split" configuration modify or add to the files under /etc/exim4/conf.d/. In either case the files are extensively commented. For small changes in the split configuration, create a file with a name like /etc/exim4/conf.d/00_local and put appropriate variable definitions it. See the section on configuration below for more details.> cu andreasAlthough I know it would require more work, you might consider discussing the split and unsplit configurations separately in README.Debian (and perhaps some of the man pages). I think that would make it easier to follow. Finally, the comment in exim4.conf.template could be clearer. It now reads ###################################################################### # Depending on where you find this file, this might be a template or # an actual configuration file. Documentation about the Debian exim4 # configuration scheme can be found in # /usr/share/doc/exim4-base/README.Debian.gz. # # Strings like DEBCONFsomethingDEBCONF are replaced by installation # dependent values by update-exim4.conf, the script which builds the # actual configuration from the templates. I''m still not sure what the template/actual configuration file distinction means. It would be simpler to say ###################################################################### # This file is only used in the non-split configuration case. # Documentation about the Debian exim4 # configuration scheme can be found in # /usr/share/doc/exim4-base/README.Debian.gz. The second paragraph on debconf might add some of the details about where the substitution values come from, as I did further up. Or it could just refer to other docs. I think part of the problem is that this file is generated from another during build, because the same comment also appears 01_exim4-config_listmacrosdefs. It''s also confusing there. If it is too much trouble to produce separate comments for each, the comment could just say ###################################################################### # /etc/exim4/exim4.conf.template is only used in the non-split configuration case. # /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs is only used for split # configurations. # Documentation about the Debian exim4 # configuration scheme can be found in # /usr/share/doc/exim4-base/README.Debian.gz. -- Ross Boylan wk: (415) 502-4031 530 Parnassus Avenue (Library) rm 115-4 ross@biostat.ucsf.edu Dept of Epidemiology and Biostatistics fax: (415) 476-9856 University of California, San Francisco San Francisco, CA 94143-0840 hm: (415) 550-1062
On Sun, 2005-05-29 at 08:37 +0200, Marc Haber wrote:> Hi, > > On Sat, May 28, 2005 at 05:41:15PM -0700, Ross Boylan wrote: > > Short version: > > > > Using a split config, what is the appropriate way to set or modify > > variables such as CHECK_RCPT_VERIFY_SENDER, CHECK_RCPT_REVERSE_DNS, and > > MAIN_TRUSTED_USERS? If there are several ways (e.g., with or without > > debconf), what is the recommended alternative? I find the documentation > > confusing. > > Does README.Debian.gz from 4.50-8 help?A lot! It has one other problem I omitted from my previous message: Benefits of the unsplit configuration approach: * It is more fragile. I think you mean "less" fragile :) Also, it might be worth mentioning that it is more like the usual exim configuration, and may be easier for some people to grasp.> > > The man page update-exim4.conf.8 says (sorry about the wrapping) > > [snip] > > > Again, this sounds as if it''s one or the other. > > Yes, it is. > > > I also have some feedback: I had trouble finding the files mentioned > > above. > > So you are saying that /etc/exim4/exim4.conf.template, > /etc/exim4/update-exim4.conf.conf and > /var/lib/exim4/config.autogenerated do not exist on your system, and > that /etc/exim4/conf.d doesn''t have any files?No. Mostly I''m saying I had trouble finding README.Debian.gz because it was not under /usr/share/exim4-config/doc. However, that seems to have changed in 4.50-8. You''re way ahead of me. :) I also meant that I had trouble identifying /etc/exim4/exim4.conf.template as being the right place to make changes. That''s probably OK, since it turned out to be the wrong place (for me, with a split config).> > > Finally, the pattern in which there are DEBCONF vars, DC vars, and dc > > vars is also confusing to me, as is the order of which overrides which. > > This is complicated, yes :-( Any idea how to improve docs?On close reading, I think the info is all there. Perhaps a brief paragraph on how options get in, and what overrides what (including environment variables, options on the init script, etc). As I understand it, this is the deal: Response you give to debconf go to /etc/exim4/update-exim4.conf.conf and are stored as dc_xyz. The administrator can edit the values in that file, and these changes will reset the debconf values (I don''t know enough about the internals of debconf to know if it stores your answers in some other database; I suspect it does. You are quite clear that edits to update-exim4.conf.conf will be permanent, though.) Finally, when update-exim4.conf runs, it substitutes the value of dc_xyz for any occurrence of DEBCONFxyxDEBCONF. It seems there are some dc_ values which govern behavior before substitution, the split config variable being an example (the only one?).> > Greetings > Marc >-- Ross Boylan wk: (415) 502-4031 530 Parnassus Avenue (Library) rm 115-4 ross@biostat.ucsf.edu Dept of Epidemiology and Biostatistics fax: (415) 476-9856 University of California, San Francisco San Francisco, CA 94143-0840 hm: (415) 550-1062
On 2005-06-01 Ross Boylan <ross@biostat.ucsf.edu> wrote:> On Sun, 2005-05-29 at 08:10 +0200, Andreas Metzler wrote:[...]> I want to double-check that stuff I put in main/00_local is read before > things in the acl/ directory (for example). The new README seems to > indicate everything can go under main, and the update-exim4.conf manpage > indicates main is read first.Hello, Macro definitions like "CHECK_RCPT_VERIFY_SENDER = true" need to go into the initial part of exim''s configuration. <http://www.exim.org/exim-html-4.50/doc/html/spec_6.html#SECT6.2> With split_config the Debian setup constructs this part from the files in conf.d/main/> Since the general logic is by > alphabetical order, and acl precedes main, I''m a little concerned > changes to acl need to go in acl/00_local.If you want to use statements that exim''s configuration file expects in the acl-section they''ll need to go into the conf.d/acl/ if you are using the provided macro-hooks in the shipped acls (e.g. HECK_RCPT_VERIFY_SENDER) by setting a macro, then of course this macro-definition has to go into the main section, like any other moacro-definition.> Proposed change update-exim4.conf manpage, to make that interpretation[...] Thanks. I''ve applied this change in SVN: -------------------- --- update-exim4.conf.8 (Revision 1167) +++ update-exim4.conf.8 (Arbeitskopie) @@ -2,7 +2,7 @@ .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) -.TH UPDATE-EXIM4.CONF 8 "Apr 3, 2005" EXIM4 +.TH UPDATE-EXIM4.CONF 8 "Jun 4, 2005" EXIM4 .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -58,15 +58,27 @@ to the output file .I /var/lib/exim4/config.autogenerated. .PP -Depending on the setting of dc_use_split_config in -/etc/exim4/update\-exim4.conf.conf +If dc_use_split_config in /etc/exim4/update\-exim4.conf.conf specifies a split +configuration, .B update\-exim4.conf -either sorts the files in the subdirectories main, acl, router, transport, -retry, rewrite and auth of /etc/exim4/conf.d in the lexical sort order, -concatenates them and replaces the patterns DEBCONFsomethingDEBCONF or only -replaces the patterns DEBCONFsomethingDEBCONF listed in -/etc/exim4/exim4.conf.template. -It does not change the other contents of these files. +processes the /etc/exim4/conf.d subdirectories in the order main, acl, +router, transport, retry, rewrite and auth. Within each directory it takes +files in lexical sort order by file name. It concatenates all these files +and makes the debconf replacement described below. + +If you are not using split configuration +.B update\-exim4.conf +concatenates +/etc/exim4/exim4.conf.localmacros +(if this file exists) and /etc/exim4/exim4.conf.template (in this order) and +makes the debconf replacement described below. + +In either case, before outputting the result +to /var/lib/exim4/config.autogenerated, +.B update\-exim4.conf +replaces the +patterns DEBCONFsomethingDEBCONF with the contents of dc_something +from /etc/exim4/update\-exim4.conf.conf. It makes no other changes. This makes it very simple to make small changes to the configuration and still have the benefits of debconf. -------------------- Actually some of the English language in there sounds strange to me, but you''re a native speaker, ... ;-) [...]>>> /usr/share/doc/exim4-base/README.Debian >>> "If you want to tweak the configuration, please see the configuration >>> files in /etc/exim4/conf.d, and /etc/exim4/exim4.conf.template." >>> That makes it sound as if the latter is the right place. >> [...]>> Does it? Have you got a suggestion for improving this? > If you want to tweak the configuration you should modify > /etc/exim4/exim4.conf.template if you have an "unsplit" > configuration. If you have a "split" configuration modify or add to > the files under /etc/exim4/conf.d/. In either case the files are > extensively commented. For small changes in the split > configuration, create a file with a name like > /etc/exim4/conf.d/00_local and put appropriate variable definitions > it. See the section on configuration below for more details.I''ve copied this, but dumped the sentence about "/etc/exim4/conf.d/00_local", as I think there should be some more documention about the macros, and this sentence would belong in there. [some more stuff snipped, postponed for later consideration] cu andreas -- "See, I told you they''d listen to Reason," [SPOILER] Svfurlr fnlf, fuhggvat qbja gur juveyvat tha. Neal Stephenson in "Snow Crash" http://downhill.aus.cc/
On Wed, Jun 01, 2005 at 01:28:34PM -0700, Ross Boylan wrote:> On Sun, 2005-05-29 at 08:10 +0200, Andreas Metzler wrote: > > If you are using unsplit, you should edit exim4.conf.template (or in > > 4.50-8 and later /etc/exim4/exim4.conf.localmacros) else place them > > in a new file, that is read before the others. > I assume "else" mean "if you use split". That was the missing piece for > me, and I think the 4.50-8 docs are much clearer on this. > > I want to double-check that stuff I put in main/00_local is read before > things in the acl/ directory (for example).Yes, as the exim configuration has a pre-defined order of the configuration sections in the config file. Macro definitions can only be in the main section (this will change for exim4 4.51, which allows macro definitions at almost any place in the config).> The new README seems to > indicate everything can go under main, and the update-exim4.conf manpage > indicates main is read first. Since the general logic is by > alphabetical order, and acl precedes main, I''m a little concerned > changes to acl need to go in acl/00_local.Well, we assume that people intending to mess with exim''s configuration beyond the pre-fabricated stuff that we offer have acquired some basic familiarity with exim configuration beforehand. I don''t think that this should be a misassumption.> Proposed change update-exim4.conf manpage, to make that interpretation > clearer (as well as clarifying some other things, indicated in square > brackets in the original): > Current > Depending [how?] on the setting of dc_use_split_config in > /etc/exim4/update-exim4.conf.conf update-exim4.conf either sorts the > files in the subdirectories main, acl, router, transport, retry, > rewrite and auth [in that order?] of /etc/exim4/conf.d in the lexical > sort order [of what?], con- > catenates them and replaces the patterns DEBCONFsomethingDEBCONF or > only replaces the patterns DEBCONFsomethingDEBCONF listed in > /etc/exim4/exim4.conf.template. It does not change the other contents > of these files. This makes it very simple to make small changes to the > configuration and still have the benefits of debconf. > > Proposed > If dc_use_split_config in /etc/exim4/update-exim4.conf.conf specifies a > split configuration [still don''t say exactly how, but make clear this is > the split config case, which was only implicit before], > update-exim4.conf processes the /etc/exim4/conf.d > subdirectories in the order main, acl, router, transport, retry, > rewrite and auth. Within each directory it takes files in lexical sort > order by file name. It concatenates all these files, making the Debconf > replacement described below. > > If you do not have a split configuration, update-exim4.conf uses > only /etc/exim4/exim4.conf.template. > > In either case, before outputing the result > to /var/lib/exim4/config.autogenerated, update-exim4.conf replaces the > patterns DEBCONFsomethingDEBCONF with the contents of dc_something > from /etc/exim4/update-exim4.conf.conf. It makes no other changes. > This makes it very simple to make small changes to the configuration and > still have the benefits of debconf.If we go to documentation _that_ detailed (this text is almost more exact than the actual code), we also need to say something about foo.rul taking precendence over foo. Andreas, since you made that change, can you please...> Although I know it would require more work, you might consider > discussing the split and unsplit configurations separately in > README.Debian (and perhaps some of the man pages). I think that > would make it easier to follow.It would, however, duplicate a lot of the explanations, making it harder to keep them in sync.> Finally, the comment in exim4.conf.template could be clearer. It now reads > ###################################################################### > # Depending on where you find this file, this might be a template or > # an actual configuration file. Documentation about the Debian exim4 > # configuration scheme can be found in > # /usr/share/doc/exim4-base/README.Debian.gz. > # > # Strings like DEBCONFsomethingDEBCONF are replaced by installation > # dependent values by update-exim4.conf, the script which builds the > # actual configuration from the templates. > > I''m still not sure what the template/actual configuration file distinction means.It means that people kept copying /etc/exim4.conf.template to /etc/exim.conf without reading and/or thinking and swiftly proceeded to yell at us for shipping a syntactically invalid configuration template.> It would be simpler to say > ###################################################################### > # This file is only used in the non-split configuration case. > # Documentation about the Debian exim4 > # configuration scheme can be found in > # /usr/share/doc/exim4-base/README.Debian.gz.This is how it was originally. People were too stupid for that.> The second paragraph on debconf might add some of the details about where the > substitution values come from, as I did further up. Or it could just refer > to other docs. > > I think part of the problem is that this file is generated from another during > build, because the same comment also appears 01_exim4-config_listmacrosdefs. > It''s also confusing there. If it is too much trouble to produce separate comments > for each, the comment could just say > ###################################################################### > # /etc/exim4/exim4.conf.template is only used in the non-split configuration case. > # /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs is only used for split > # configurations. > # Documentation about the Debian exim4 > # configuration scheme can be found in > # /usr/share/doc/exim4-base/README.Debian.gz.Good, taken. Greetings Marc -- ----------------------------------------------------------------------------- Marc Haber | "I don''t trust Computers. They | Mailadresse im Header Mannheim, Germany | lose things." Winona Ryder | Fon: *49 621 72739834 Nordisch by Nature | How to make an American Quilt | Fax: *49 621 72739835
On Wed, Jun 01, 2005 at 01:41:37PM -0700, Ross Boylan wrote:> On Sun, 2005-05-29 at 08:37 +0200, Marc Haber wrote: > > Does README.Debian.gz from 4.50-8 help? > A lot!Good!> It has one other problem I omitted from my previous message: > Benefits of the unsplit configuration approach: > * It is more fragile. > I think you mean "less" fragile :)Oops. Fixed.> Also, it might be worth mentioning that it is more like the usual exim > configuration, and may be easier for some people to grasp.Done.> No. Mostly I''m saying I had trouble finding README.Debian.gz because it > was not under /usr/share/exim4-config/doc. However, that seems to have > changed in 4.50-8. You''re way ahead of me. :)Good to hear that ;)> > > Finally, the pattern in which there are DEBCONF vars, DC vars, and dc > > > vars is also confusing to me, as is the order of which overrides which. > > > > This is complicated, yes :-( Any idea how to improve docs? > On close reading, I think the info is all there. Perhaps a brief > paragraph on how options get in, and what overrides what (including > environment variables, options on the init script, etc).Patch appreciated. We are not going to make sarge, so we have plenty of time.> As I understand it, this is the deal: > Response you give to debconf go to /etc/exim4/update-exim4.conf.conf and > are stored as dc_xyz.Yes.> The administrator can edit the values in that > file,Yes.> and these changes will reset the debconf values (I don''t know > enough about the internals of debconf to know if it stores your answers > in some other database; I suspect it does.Debconf has its own database in /var/cache/debconf, but this is not to be used as a registry. Thus, our code parses /etc/exim4/update-exim4.conf.conf before presenting any Debconf questions to the user, so that the data from /etc/exim4/update-exim4.conf.conf shows up in the Debconf dialogs.> You are quite clear that > edits to update-exim4.conf.conf will be permanent, though.)That is mandated by policy.> Finally, when update-exim4.conf runs, it substitutes the value of dc_xyz > for any occurrence of DEBCONFxyxDEBCONF.Yes.> It seems there are some dc_ values which govern behavior before > substitution, the split config variable being an examplYes.> (the only one?).CFILEMODE and ue4c_keepcomments fall in that category as well. Greetings Marc -- ----------------------------------------------------------------------------- Marc Haber | "I don''t trust Computers. They | Mailadresse im Header Mannheim, Germany | lose things." Winona Ryder | Fon: *49 621 72739834 Nordisch by Nature | How to make an American Quilt | Fax: *49 621 72739835
Thanks for all the info, and I''m glad the patches helped. On Sat, Jun 04, 2005 at 04:15:47PM +0200, Andreas Metzler wrote:> > Actually some of the English language in there sounds strange to me, > but you''re a native speaker, ... ;-)Yes, but I read a lot of academic prose, which sometimes infects my writing :(
On Sat, Jun 04, 2005 at 09:56:40PM +0200, Marc Haber wrote:> On Wed, Jun 01, 2005 at 01:28:34PM -0700, Ross Boylan wrote: > > On Sun, 2005-05-29 at 08:10 +0200, Andreas Metzler wrote:...> > The new README seems to > > indicate everything can go under main, and the update-exim4.conf manpage > > indicates main is read first. Since the general logic is by > > alphabetical order, and acl precedes main, I''m a little concerned > > changes to acl need to go in acl/00_local. > > Well, we assume that people intending to mess with exim''s > configuration beyond the pre-fabricated stuff that we offer have > acquired some basic familiarity with exim configuration beforehand. I > don''t think that this should be a misassumption.The issue for me was understanding the behavior of update-exim4.conf, not exim''s configuration syntax. Also, I was imagining a scenario in which the administrator just wants to tweak the variable definitions, and might not be much of an exim expert. ....> > If we go to documentation _that_ detailed (this text is almost more > exact than the actual code), we also need to say something about > foo.rul taking precendence over foo. Andreas, since you made that > change, can you please...Hmm, you mean the contents of a file named foo.rul will appear before the contents of file foo? That is surprising.> > > Although I know it would require more work, you might consider > > discussing the split and unsplit configurations separately in > > README.Debian (and perhaps some of the man pages). I think that > > would make it easier to follow. > > It would, however, duplicate a lot of the explanations, making it > harder to keep them in sync.Are you talking about duplication across files or within a single file? Assuming it''s the latter, an intermediate solution might be to use formatting and labelling to distinguish the two cases a bit more clearly than the docs do now.> > > Finally, the comment in exim4.conf.template could be clearer. It now reads > > ###################################################################### > > # Depending on where you find this file, this might be a template or > > # an actual configuration file. Documentation about the Debian exim4 > > # configuration scheme can be found in > > # /usr/share/doc/exim4-base/README.Debian.gz. > > # > > # Strings like DEBCONFsomethingDEBCONF are replaced by installation > > # dependent values by update-exim4.conf, the script which builds the > > # actual configuration from the templates. > > > > I''m still not sure what the template/actual configuration file distinction means. > > It means that people kept copying /etc/exim4.conf.template to > /etc/exim.conf without reading and/or thinking and swiftly proceeded > to yell at us for shipping a syntactically invalid configuration template.Oh. That''s not an easy thing to make clear. How about Warning: the comments in this file assume it is being used as a template by update-exim4.conf, but some administrators may copy it manually into /etc/exim.conf [do you mean /etc/exim4/exim.conf?]. Some of the comments do not apply in that case. ? Unfortunately, that''s much longer.> > > It would be simpler to say > > ###################################################################### > > # This file is only used in the non-split configuration case. > > # Documentation about the Debian exim4 > > # configuration scheme can be found in > > # /usr/share/doc/exim4-base/README.Debian.gz. > > This is how it was originally. People were too stupid for that.I guess that makes me too stupid to be stupid, which might be a good thing :) .... Ross
Hi, On Mon, Jun 06, 2005 at 02:11:46PM -0700, Ross Boylan wrote:> On Sat, Jun 04, 2005 at 09:56:40PM +0200, Marc Haber wrote: > > On Wed, Jun 01, 2005 at 01:28:34PM -0700, Ross Boylan wrote: > > > On Sun, 2005-05-29 at 08:10 +0200, Andreas Metzler wrote: > ... > > > The new README seems to > > > indicate everything can go under main, and the update-exim4.conf manpage > > > indicates main is read first. Since the general logic is by > > > alphabetical order, and acl precedes main, I''m a little concerned > > > changes to acl need to go in acl/00_local.The README file clearly states that the local configuration file can be dropped "anywhere in /etc/exim4/conf.d/main", with a name of "000_localmacros" explicitly suggested.> > Well, we assume that people intending to mess with exim''s > > configuration beyond the pre-fabricated stuff that we offer have > > acquired some basic familiarity with exim configuration beforehand. I > > don''t think that this should be a misassumption. > > The issue for me was understanding the behavior of update-exim4.conf, > not exim''s configuration syntax. Also, I was imagining a scenario in > which the administrator just wants to tweak the variable definitions, > and might not be much of an exim expert.Andreas has clarified the man page according to your wishes.> > If we go to documentation _that_ detailed (this text is almost more > > exact than the actual code), we also need to say something about > > foo.rul taking precendence over foo. Andreas, since you made that > > change, can you please... > > Hmm, you mean the contents of a file named foo.rul will appear before > the contents of file foo? That is surprising.Not surprising, documented. | update-exim4.conf will only use files in the conf.d directory that have | a filename which consists only of letters, numbers, underscores and | hyphens ([:alnum:]_-), similar to run-parts(8). Additionally, | update-exim4.conf will use /etc/exim4/conf.d/foo/bar.rul instead of | /etc/exim4/conf.d/foo/bar if the .rul file exists. This is meant to be | helpful for easy interaction with packages extending Exim.> > > Although I know it would require more work, you might consider > > > discussing the split and unsplit configurations separately in > > > README.Debian (and perhaps some of the man pages). I think that > > > would make it easier to follow. > > > > It would, however, duplicate a lot of the explanations, making it > > harder to keep them in sync. > > Are you talking about duplication across files or within a single > file?Within the package. It is a sysiphus work to guess which files people will read and which not, and with every change, the chance of people actually reading all docs gets lower.> Assuming it''s the latter, an intermediate solution might be to > use formatting and labelling to distinguish the two cases a bit more > clearly than the docs do now.Patches appreciated.> > > Finally, the comment in exim4.conf.template could be clearer. It now reads > > > ###################################################################### > > > # Depending on where you find this file, this might be a template or > > > # an actual configuration file. Documentation about the Debian exim4 > > > # configuration scheme can be found in > > > # /usr/share/doc/exim4-base/README.Debian.gz. > > > # > > > # Strings like DEBCONFsomethingDEBCONF are replaced by installation > > > # dependent values by update-exim4.conf, the script which builds the > > > # actual configuration from the templates. > > > > > > I''m still not sure what the template/actual configuration file distinction means. > > > > It means that people kept copying /etc/exim4.conf.template to > > /etc/exim.conf without reading and/or thinking and swiftly proceeded > > to yell at us for shipping a syntactically invalid configuration template. > > Oh. That''s not an easy thing to make clear. How about > > Warning: the comments in this file assume it is being used as a > template by update-exim4.conf, but some administrators may copy it > manually into /etc/exim.conf [do you mean /etc/exim4/exim.conf?]. > Some of the comments do not apply in that case. > ? > > Unfortunately, that''s much longer.conf.d/main/01_exim4-config_listmacrosdefs now says: |###################################################################### |# /etc/exim4/exim4.conf.template is only used with the non-split |# configuration scheme. |# /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs is only used |# with the split configuration scheme. |# If you find this comment anywhere else, somebody copied it there. |# Documentation about the Debian exim4 configuration scheme can be |# found in /usr/share/doc/exim4-base/README.Debian.gz. Greetings Marc -- ----------------------------------------------------------------------------- Marc Haber | "I don''t trust Computers. They | Mailadresse im Header Mannheim, Germany | lose things." Winona Ryder | Fon: *49 621 72739834 Nordisch by Nature | How to make an American Quilt | Fax: *49 621 72739835