Downgrading packages after removing a repository

Jan Claeys lists at
Fri Aug 7 17:59:46 UTC 2009

Op dinsdag 04-08-2009 om 13:14 uur [tijdzone -0500], schreef C
> > Downgrade will certainly fail if the format of user data has changed
> > (e.g. a new database format or config file format). Assuming that the
> > new version will upgrade the data to new format on the first run, the
> > data won't be usable after a downgrade anymore (the old version doesn't
> > understand the new format).
> Indeed. Some options seem to apply, though: offer to replace the
> current configuration with the maintainers one; warn the user the the
> current user data format is incompatible with the one provided in this
> version, and that the user will have to *manually* recover; etc, etc.

> Still, this is not a reason *not* to provide such service. We already
> provide a similar service in the other direction.

Currently there is no standardized "prepare for downgrade" mechanism
in .deb packages that can be called in case apt detects a request for a
downgrade.  Implementing this would require changing how apt & dpkg work
now, and I guess that would require talking it through with Debian and
maybe other APT-based distros, making sure it works with older .deb/APT
versions, etc.

Also, it's much easier to provide the current "forward" version of this
"service", because it's the "natural" way and in most cases upstream
authors include or at least provide the needed tools to do the required
conversions if they are needed...

A simple change to .deb/APT and a partial solution might be to add a
header that lists the lowest version number to which one should be able
to downgrade without data/configuration loss.  This would allow going
back to earlier versions when a simple bug or security fix causes a
regression that is only detected after releasing it.  Maybe apport & the
Xorg failure script could even offer the user to downgrade to a previous
package version in some cases?

Jan Claeys

More information about the Ubuntu-devel-discuss mailing list