On Fri, 03 Apr 2026 at 14:26:34 -0400, Jeremy Bícha wrote:
On Fri, Apr 3, 2026 at 1:59 PM Simon McVittie <[email protected]> wrote:
The script has Ubuntuisms like /var/log/installer/media-info so it isn't
directly applicable to Debian, but hopefully someone who knows the
user-session-migration interface better can adapt it for Debian.

The Debian installer does create log files which can be used to
similarly detect how old a Debian install is. But an install done with
Debian Live (Calamares) does not appear to create similar log files.

Can we perhaps do something like this?

* preinst:
  - if upgrade from version < 50.0 ($1 = upgrade, $2 < 50.0)
    - create /var/lib/gsettings-desktop-schemas/older-than-v50.stamp

* user-session-migration:
  - if /var/lib/gsettings-desktop-schemas/older-than-v50.stamp exists:
    - perform migration for the current user

* postrm:
  - if purge:
    - rm -f /var/lib/gsettings-desktop-schemas/older-than-v50.stamp
    - rmdir --ignore-fail-on-non-empty /var/lib/gsettings-desktop-schemas

I think that does what we want:

* Scenario 1: fresh install of forky
  - gsettings-desktop-schemas is installed for the first time at v50.0
  - preinst doesn't create the flag file
  - u-s-m runs the migration (once per user on next login) but it does nothing
  - postrm purge cleans up

* Scenario 2: upgrade (old versions to) trixie to forky
  - g-d-s is installed for the first time at v48.x or older
  - eventually g-d-s is upgraded to v50.0
  - preinst sees that this is an upgrade from v48/v49 to v50 and creates
    the flag file
  - u-s-m runs the migration (once per user on next login) and it
    actually takes effect
  - postrm purge cleans up, as before

(And then after the forky release, in the duke release cycle, we can remove the u-s-m migration and make the maintainer scripts delete /var/lib/gsettings-desktop-schemas/older-than-v50.stamp unconditionally, instead.)

    smcv

Reply via email to