@Robie

1. From man page does allude to that.
"      -P foo, --package foo
              Don't follow dpkg-divert diversions by package foo when updating 
configuration files.
"

which implies ucf should (and does) respect/handle diversions.

2. Further: "ucf should respect dpkg-divert" (refer 
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=477773)
indicates it is a feature and has been supported since 3.0040 and has been 
accepted by the upstream maintainer.

3. Likewise the most recent change by the upstream maintainer is also 
addressing similar issue:
```
ucf (3.0043) unstable; urgency=high

  * The argument to dpkg-divert needs to be the actual file name, not the
    fully escaped regexp safe one. 
  * Bug fix: "dpkg-divert error when upgrading grub with diverted config",
    thanks to [email protected]</a>; (Closes: #962818).

 -- Manoj Srivastava <[email protected]>  Mon, 15 Jun 2020 22:37:53 -0700
```

So I believe ucf is expected handle diversions even if this specific
patch wasn't acked by the upstream maintainer.

> If we do decide to go ahead, then there are a few things that need
fixing, please.

Updated the bug description as well as the changelog (re-uploaded).

FWIW, we do have NMU ucf in several Ubuntu releases in general:
```
 ucf | 3.0027+nmu1 | trusty   | source, all
 ucf | 3.0036      | xenial   | source, all
 ucf | 3.0038      | bionic   | source, all
 ucf | 3.0038+nmu1 | focal    | source, all
 ucf | 3.0043      | jammy    | source, all
 ucf | 3.0043+nmu1 | mantic   | source, all
 ucf | 3.0043+nmu1 | noble    | source, all
 ucf | 3.0043+nmu1 | oracular | source, all

And specifically, the NMU versions on mantic, noble, and Oracular has _this 
patch_ already (which I am backporting here to Jammy). So I think it's 
reasonable to assume the backport is safe. 
Please let me know if there are further concerns.

** Description changed:

  [ Impact ]
  
  When a dpkg-diversion is used to setup a package diversion and ucf for 
managing
  the configuration files for chrony package, the postinst script of ucf fails
  when installing chrony.
  
  This issue isn't specific to chrony but can happen for any package whose
  config files are managed by ucf.
  
  This affects users on Jammy who use ucf. Newer versions of ucf have this bug
  fixed already.
  
+ "ucf should respect dpkg-divert" (refer https://bugs.debian.org/cgi-
+ bin/bugreport.cgi?bug=477773) indicates it is a feature and has been
+ supported since 3.0040 and has been accepted by the upstream maintainer.
+ 
+ 
  [ Test Plan ]
  
+ Common case.
+ A1. Create a Jammy container or VM
+ A2. Install chrony: apt install chrony -y
+ A3. Confirm ucf works with no failures (including syntax errors)
+ B1. Modify the configuration: /etc/chrony/chrony.conf
+ B2. Remove chrony package and re-install
+ B3. Confirm it still works.
+ 
+ B. Case when a diversion is in place.
  1. Create a Jammy container or VM
  2. Setup a diversion for chrony.conf: dpkg-divert --package chrony --add 
--rename --divert /etc/chrony/chrony.conf.custom /etc/chrony/chrony.conf
  3. Install chrony: apt install chrony -y
  4. Notice the postinst script fail with syntax errors such as:
  ```
  Preparing to unpack .../chrony_4.2-2ubuntu2_amd64.deb ...
  Unpacking chrony (4.2-2ubuntu2) ...
  Setting up chrony (4.2-2ubuntu2) ...
  /usr/bin/ucf: 444: [: missing ]
  grep: ]: No such file or directory
  /usr/bin/ucf: 444: [: missing ]
  grep: ]: No such file or directory
  ```
  5. Install the package with the fix from the PPA: 
https://launchpad.net/~pponnuvel/+archive/ubuntu/ucf-jammy (to be replaced with 
the package from the -proposed pocket)
  6. Repeat the same from steps 1 to 4 and notice no failures at step4.
  
  [ Where problems could occur ]
  
  Can further introduce similar bugs if the patch contains similar syntax
  errors. Consequently local diversion may not take effect for packages
  using ucf to manage configuration files.
  
  [ Other Info ]
-  
+ 
  Upstream bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=979354
  
  It's been fixed in version ucf/3.0043+nmu1. Lunar/Mantic/Noble all have the
  ucf version with this patch.
  
  Affects Jammy only and thus backported to only Jammy.

** Bug watch added: Debian Bug tracker #477773
   https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=477773

** Patch added: "lp2061825.debdiff"
   
https://bugs.launchpad.net/ubuntu/jammy/+source/ucf/+bug/2061825/+attachment/5779403/+files/lp2061825.debdiff

** Attachment removed: "debdiff_2061825_new.txt"
   
https://bugs.launchpad.net/ubuntu/jammy/+source/ucf/+bug/2061825/+attachment/5770060/+files/debdiff_2061825_new.txt

** Attachment removed: "debdiff.txt"
   
https://bugs.launchpad.net/ubuntu/jammy/+source/ucf/+bug/2061825/+attachment/5767388/+files/debdiff.txt

** Changed in: ucf (Ubuntu Jammy)
       Status: Incomplete => In Progress

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2061825

Title:
  [SRU] ucf fails to work for local diversions on Jammy

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ucf/+bug/2061825/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to