[Rpm-maint] Removing repackage and (auto)rollback?

Panu Matilainen pmatilai at laiskiainen.org
Tue Feb 19 16:45:41 UTC 2008

On Tue, 19 Feb 2008, James Olin Oden wrote:

> On Feb 19, 2008 3:45 AM, Panu Matilainen <pmatilai at redhat.com> wrote:
>> Before anybody asks: I actually do think that ultimately rpm should be
>> able to support reliably rolling back transactions. It's just that the
>> current repackage+rollback combo fails to deliver it, as there's no way to
>> undo script actions.
>> So... I'm considering axing the rollback and related code out of rpm, two
>> somewhat separate parts here:
>> 1) Configurable repackaging of on-disk contents on erasure, manual
>> rollback from cli. While not terribly intrusive, it's in my view an
>> unsupportable feature because it fails to deliver reliable rollbacks and
>> cannot be fixed (because of the fundamental issue with scriptlets
>> doing things outside rpm's control).
>> 2) Automatic rollback on failed transaction. Conceptually it's an awfully
>> nice feature, but as it's based on 1) which is unreliable to begin with...
>> To make matters worse, it's a feature that practically nobody uses, tests
>> or works on (James Oden who wrote the feature is in "the other rpm" camp
>> AFAIK) and which non-trivially complicates the transaction code for a
>> practically unused (and unusable) feature.
> You would be wrong.  I'm in no RPM camp at the moment.  If I was
> working on RPM I would have approached you guys about continued
> improvements.

Ok, apologies for wrong assumption then :)

> Honestly, though, rpm is the wrong place to do rollbacks.  You want to
> really have a reliable upgrade rollback you need to do it at the
> filesystem level.  Things are not quite there at present in linux to
> really support this but there much closer than they ever were.

Very much agreed. One would probably want some sort of integration for 
filesystem level rollback (mark beginning/end of transaction or such) but 
rpm wont be doing the heavy lifting in that case.

>> Me thinks it'd be more productive to investigate related items that could
>> be reliably implemented than attempt to "fix" what's fundamentally
>> broken...
> The fix is not in rpm.  You will never be able to undo opaque
> scriptlets in a provably reliable way within the package manager.
> Its just not possible.

Indeed, and that's why I'd rather see the current implementation go - it's 
not possible to fix it. Of course one could just ban any scriptlets when 
rollbacks are configured but... :)

 	- Panu -

More information about the Rpm-maint mailing list