I wondered if ucf is expected to handle dpkg-divert -ed files in the first place, since that seemed odd to me. It does seem like that's a feature the code was intended to support, although it's unclear to me if it ever worked, and it's not really documented anywhere I can find except that is implied by the manpage. So it seems like it's debatable as to whether this is a bugfix or a request to add a feature.
Looking at your description of "Impact", please could you expand on what you're trying to achieve? Why are you using dpkg-divert to divert configuration files installed by ucf? Did this method work in a previous release? Why aren't you writing chrony.conf and then using UCF_FORCE_CONFFOLD=1 instead, or just overwriting chrony.conf after installation, given that ucf is intended to gracefully handle local configuration file changes? I ask because this seems like a risky change to make. ucf is widely used, we don't have the means to test a broad set of uses, it ships with no automated tests, and this particular "fix" was uploaded in a Debian NMU that has yet to be acknowledged by the maintainer. I'd like to understand the use case and why it is essential to fix this in order to weigh up the risk please. If we do decide to go ahead, then there are a few things that need fixing, please. The Test Plan must include the common case - that ucf continues to work as expected when there is no diversion. Since there are no automated tests whatsoever, please include exercise of the common cases that ucf handles (installation, upgrade when packaging changes the configuration file, with and without local user modification, package removal/purge, etc). Please fix the changelog description to explain what the actual user story is that is being fixed, so that users can easily see if the fix is relevant to them or not. For example: "Fix handling of configuration files diverted with dpkg-divert (LP: #...)". Feel free to mention other things like the syntax error if you wish, but just saying that you're fixing a syntax error doesn't really convey anything useful to most readers. ** Changed in: ucf (Ubuntu Jammy) Status: In Progress => Incomplete -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to ucf in Ubuntu. https://bugs.launchpad.net/bugs/2061825 Title: [SRU] ucf fails to work for local diversions on Jammy Status in ucf package in Ubuntu: Fix Released Status in ucf source package in Jammy: Incomplete Bug description: [ 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. [ Test Plan ] 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. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/ucf/+bug/2061825/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp