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

Reply via email to