API CHANGES 0.20
You don't have to request a transaction, set it up and call the whished action
on it aynmore. Instead you call the action, e.g. UpdateCache, on the daemon
interface which will return the id of a newly created transaction. After settingit up you have to call its Run method.
* org.debian.aptdaemon D-Bus interface:
- Add InstallPackages, InstallFile, RemovePackages, CommitPackages,
UpgradePackages, UpgradeSystem, AddVendorKey, RemoveVendorKey, UpdateCache
method. Each method creates a new transaction and returns its tid.
- Remove RequestTransaction method
- Add new FixIncompleteInstall method which basically runs dpkg --configure -a
- Add a new FixBrokenDepends method wich tries to correct dependencies
* org.debian.aptdaemon.transaction D-Bus interface:
- Remove InstallPackages, InstallFile, RemovePackages, CommitPackages,
UpgradePackages, UpgradeSystem, AddVendorKey, RemoveVendorKey, UpdateCache
method. They are now part of the org.debian.aptdaemon interface.
- Add a Run method which queues the transaction.
- Add PropertyChanged signal - should be used instead of the deprecated
signals. Signal matchers are quite limited on the system bus by default.
- Add ProgressDetails, RequiredMedium, ConfigFilePrompt, ExitState, Error,
Locale, AllowUnauthenticated, Terminal, DebconfSocket, Packages,
MetaData and RemoveObsoletedDepends properties.
The Packages property keeps a lists of packages which should be installed,
reinstalled, removed, purged or upgraded. Currently this doesn't work for
UpgradeSystem.
The MetaData property allows clients to store additional meta data in the
transaction. See man page org.debian.apt.transaction(7) for the format.
- Rename the AllowCancel property to Cancellable and the AllowTerminal one
to TerminalAttached - helps to make a difference between allowing
from the client and daemon side e.g. AllowUnauthenticated.
- Remove Message signal and the concept of having non-critical fail states
on the daemon side. The decision is up to the client e.g. if a system
could not be fully updated.
- Remove the Role, Status, AllowCancel, AllowTerminal, StatusDetails,
Progress, ProgressDetails signal - PropertyChanged signal should be used
instead.
- Remove the Attach method - GetAll on the properties interface
should be used instead.
- Rename property ConfigFilePrompt to ConfigFileConflict and the method
AnswerConfigFilePrompt to ResolveConfigFileConflict
* client Python module:
- The exit_handler was removed from the AptDaemonClient methods, instead it
now supports (reply|error)_handlers to call the method asynchronously and
furthermore a wait statement to return after the method is complete.
- Add public attributes to the Transaction class and remove get_* helpers:
role, error (stores an AptDaemonError instance), error_code, error_message,
exit_state, cancellable, term_attached, required_medium,
config_file_prompt, status, status_details, progress, progress_details,
paused, remove_obsoleted_depends
The properties are automatically updated by the PropertyChanged signal
matcher.
- Rename GObject signals of the Transaction class:
- role -> role-changed
- status -> status-changed
- allow-cancel -> cancellable-changed
- allow-terminal -> terminal-attached-changed
- status -> status-changed
- status-details -> status-details-changed
- progress -> progress-changed
- progress-details -> progress-details-changed
- config-file-prompt -> config-file-conflict
- Rename method config_file_prompt_answer to resolve_config_file_conflict
- Add GObject signals to the Transaction class:
- meta-data-changed
- paused
- resumed
- locale-changed
- allow-unauthenticated-changed
- remove-obsoleted-depends-changed
- debconf-socket-changed
- The methods Transaction.set_(locale|allow_unauthenticated|data|
debconf_socket|remove_obsoleted_depends) reply with the transaction
instance if called async. This makes queing much easier.
- Remove messages attribute from the Transaction class, see above
- Remove Transaction.attach method in favour of a new sync method which uses
the GetAll method on the D-Bus properties interface.
- Add set_meta_data method which accepts pairs of key=value
* PyGTK widgtes:
- On the one hand the run method of AptProgressDialog doesn't provide a way
to wait until the transaction is done anymore (by iterating on pending gtk
events), but on the other hand it now allows to show an error dialog if
required (show_error argument) or to close the progress window
automatically when the transaction is finished (close_on_finished arguement).
- Rename AptConfigFilePromptDialog to AptConfigFileConflictDialog