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