KubuntuUpdateManager
Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.
Launchpad entry: https://features.launchpad.net/distros/ubuntu/+spec/kubuntu-update-manager
Packages affected:
Summary
Port the Ubuntu dist-upgrade tool to Kubuntu.
Rationale
Upgrades in Kubuntu currently rely on apt-get dist-upgrade which often holds back packages and requires command line knowledge, a Kubuntu version of the dist-uprade tool will make the process much smoother for our useres.
Use cases
Krissy wants to upgrade from Edgy to Feisty and uses the Kubuntu dist-upgrade tool to perform the upgrade without problems.
Scope
Porting the existing frontend, keeping the same UI design as long as it complies with KDE user interface guidelines.
Design
Modify Adept Updater to offer the upgrade tool when an upgrade is available.
Create the KDE frontend to upgrade manager.
Implementation
meta-release file
The meta-release file needs to be modified to include a URL to the Kubuntu release announcement.
Adept Code
When first run Adept needs to check http://changelogs.ubuntu.com/meta-release for a new release. If this is available it should tell the user and have a button to launch the application. When this button is clicked it should download and display the Kubuntu release announcement. If the user continues Adept should download the upgrade manager application and verify that it validates against the GPG signature also listed in the meta-release file. If the user doesn't continue after the release notes or if the GPG signature does not verify the user should be returned to Adept Upgrader. If the signature does validate Adept should launch the upgrade application and close itself.
This is now mostly done. See: https://code.launchpad.net/~jr/+branch/adept/ubuntu.
dist-upgrade Tool Code
Add a command line switch to the upgrade manager to tell it which frontend to use.
Create a new frontend DistUpgradeViewKDE.py which inherits from DistUpgradeView, this implements the user interface. Four classes are needed for the apt.progress indicators which will update a QProgressBar in the user interface with the current progress.
The GTK Glade user interfaces will be reimplemented in Qt Designer. Some of the dialogues do not need to be reimplemented because we can use standard Qt dialogues. Needed: dialog_changes, dialog_error, dialog_conffile, dialog_information. Not needed: dialog_cancel, dialog_restart.
The expander widgets, common in Gnome, should be replaced with Show/Hide buttons used in KDE.
A DistUpgradeVteTerminal needs to use konsole_part now available to PyKDE.
kdesu code
The KDE debconf bindings will need to be installed by default, and MIT_MAGIC_COOKIE passed to debconf by kdesu, as specified by https://features.launchpad.net/distros/ubuntu/+spec/kubuntu-feisty-adept-changes
Unresolved issues
It is unclear if the embedded Konsole exposes the required feature to take over the master pty of a process, needed by the upgrade manager improvements. We are talking with upstream to get this available.