On Tuesday, May 2, 2023 8:35:12 AM EDT Einhard Leichtfuß wrote:
> On 02/05/2023 00:56, Scott Kitterman wrote:
> > On Monday, May 1, 2023 3:20:19 PM EDT Einhard Leichtfuß wrote:
> >> On 01/05/2023 19:47, Scott Kitterman wrote:
> >>> On Monday, May 1, 2023 1:01:17 PM EDT Einhard Leichtfuß wrote:
> >>>> On 01/05/2023 18:14, Scott Kitterman wrote:
> >>>>> On Monday, May 1, 2023 11:06:07 AM EDT Einhard Leichtfuß wrote:
> >>>>>> Package: postfix
> >>> 
> >>> ...
> >>> 
> >>>>>> In `main.cf`, the following lines were appended:
> >>>>>>> readme_directory = /usr/share/doc/postfix
> >>>>>>> html_directory = /usr/share/doc/postfix/html
> >>>>>> 
> >>>>>> If I understand the postinst script correctly, this modification of
> >>>>>> `main.cf` should only have happened upon first installation, which
> >>>>>> this
> >>>>>> was not.  I was unable to reproduce this.  So maybe this modification
> >>>>>> was indeed done earlier.
> >>>>>> 
> >>>>>> However, even upon initial installation (with pre-existing
> >>>>>> configuration), this should, in my opinion, not happen.
> >>> 
> >>> ...
> >>> 
> >>>>> Also, note that the message about is about main.cf not being modified.
> >>>>> These changes are in master.cf, so I don't understand the concern with
> >>>>> the message?
> >>>> 
> >>>> The second modification (readme_directory, html_directory) was to
> >>>> `main.cf`.  While this modification should only happen for initial
> >>>> installations (with pre-existing configuration), the message is
> >>>> displayed even then.
> >>>> 
> >>>> Steps to reproduce (assuming postfix is not installed):
> >>>> 
> >>>> $ apt install postfix-doc
> >>>> $ echo > /etc/postfix/main.cf
> >>>> $ apt install postfix
> >>> 
> >>> To focus in on the main.cf part of this, I believe that's per policy.
> >>> 
> >>> First, it's a change made by postfix-doc, not postifx, so the postfix
> >>> package statement that main.cf was not modified by it is correct and
> >>> unrelated to the main.cf change.
> >> 
> >> Ah, I did not check the postfix-doc postinst script.  It seems that both
> >> postfix-doc's and postfix's postinst scripts conditionally run
> >> 
> >>   postconf -e readme_directory=/usr/share/doc/postfix
> >> 
> >> html_directory=/usr/share/doc/postfix/html
> >> 
> >> However, postfix's postinst script only does so in the arguably rare
> >> case that postfix-doc was installed first.  So one might argue that this
> >> is still an action performed for postfix-doc falling under Policy 10.7.4.
> >> 
> >>> For the postfix-doc change to main.cf, Policy 10.7.4 is the relevant
> >>> portion. Postfix-doc uses the provided interface (postfconf), when
> >>> available.
> >> 
> >> It is not clear to me that Policy 10.7.4 overrides Policy 10.7.3 w.r.t.
> >> the requirement not to override local changes.  While this may very well
> >> not be the intention behind these policies, I'd understand them as such
> >> that the related package (postfix-doc) must only [be able to] modify the
> >> configuration file if it does not contain local changes.
> >> 
> >> I.e., either the provided program (currently postconf) should refuse to
> >> modify a locally modified configuration file, or the related package
> >> (postfix-doc) should check for local changes itself.
> >> 
> >> I am generally unsure, however, how detection of local modification is
> >> supposed to work in practice without using conffiles.  I suppose a
> >> second configuration file copy that is modified by postinst scripts, but
> >> not the local administrator, should work.
> > 
> > Preserve local modifications means don't undo specific changes made by the
> > local administrator.  It does not mean make no changes to a file that an
> > administrator has made changes to.  The use of postconf specifically
> > enables changing the values relevant to postfix-doc without disturbing
> > anything else in the file.  I think this is fine.
> 
> I agree that preserving local changes does not generally mean not to
> modify locally modified files.  (Even though I'd prefer it to mean that.)
> 
> However, unless I am mistaken, the postinst scripts do not preserve
> local changes to the readme_directory and html_directory configuration
> settings.
> 
> In practice (given postfix-doc is [being] installed), such local changes
> probably either do not happen, or the values are exactly those set by
> the postinst scripts.
> 
> That is, in such an unlikely case, the letter of the Policy would be
> violated, I think, but it may still be considered fine in practice.  I
> cannot assess that.

I agree with that analysis.  I think it is technically a policy violation, but 
one that is very unlikely to ever be an issue (I think it's fine in practice).

I still need to do further assessment on the master.cf portion of this bug.  
We're approximately a month away from a new Debian release.  I am extremely 
reluctant to mess with this so close to the release date, so any changes from 
this bug are likely early in the next release cycle.

Scott K

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to