[packagekit] Implementing Rollbacks

Richard Hughes hughsient at gmail.com
Wed Oct 3 10:18:18 PDT 2007


The conary backend (and one other future backend that I can't mention
yet) will need rollback support for the transaction viewer. I propose to
use a transaction-data signal from the spawned file, so that we do
something like:

InstallFile->backend
Package->engine
Package->engine
TransactionData->engine
Finished->engine

Where transaction data is optional and something like "r:251" that the
backend uses as its internal reference. We have to pass this back the
the engine, so the transaction_id can be amended (and altered in the
TransactionDb). We then click rollback in the Transaction viewer with
the new transaction_id and this is sent to the backend. The backend then
can strip the internal reference "r:21" and use this for the rollback.
The rollback is treated as an async operation (just like InstallFile)
and so we probably want to block all other transactions like we do for
RefreshCache until this is done.

I'll put the code in place in the next couple of days, but does this
sound okay with you guys?

Richard.




More information about the PackageKit mailing list