Summary

Improve Adept and port missing package manager tools to Kubuntu

Rationale

Kubuntu has some missing tools, we should match Ubuntu for features and fix missing functionality in Adept.

Use cases

Maisie wants to upgrade from Kubuntu breezy to dapper, but there is no dist-upgrade tool to do this.

Mark wants to install Skype from the commercial archive provided by Canonical he will now be able to do this through adept.

Kev tries starting Adept but nothing happens for twenty seconds so he gives up, just when he is doing something else Adept pops up having finally loaded its package list.

Scope

Improve the current Adept tools to include features currently missing in them but available in Ubuntu. Add support for upgrading to a new version of a distribution and commercial software archives.

Design

Adept 2.2, scheduled for the end of July, will focus on fixing current issues with adept and updating the base system.

Adept 2.3, scheduled for completion by feature freeze will add new features and usability improvements.

Implementation

Adept 2.2

Version 2.2 will port Adept to libept 0.4 which significantly increases the speed of listing all the packages. libept 0.4 is current unreleased but otherwise functioning well.

Adept needs to recover more gracefully in the case of fetcher or dpkg errors. The main problem is the need to run dpkg --configure -a in the case of archives being half installed.

One common user issue when searching for packages in Adept is that users expect the search feature to work similar to Google where inserting two words searches as OR not as a complete string. This by-word conjunction searching will be implemented.

Display of changelogs is a commonly requested feature in Adept. This will be implemented by fetching the changelog from packages.debian.org/changelogs or changelogs.ubuntu.com/changelogs using kioslaves and displaying the changes since the installed version in adept-manager.

Finally we currently do not have X debconf set up by default in Kubuntu. This is because kdesu does not set up X authentication correctly to allow applications forked from a kdesu application to display on X. We will fix kdesu to allow this and include kdebconf, which uses qt-perl, in main.

Adept 2.3

To enable i18n we will add support for ddtp assuming this is implemented in apt in Edgy as expected.

Usability improvements will be implemented as specified in http://wiki.kubuntu.org/AdeptUsability

Distribution upgrade features will be added to adept-notifier and adept-updater. Adept-notifier will check daily for new versions of Ubuntu by downloading and parsing http://changelogs.ubuntu.com/meta-release. It will show in its tooltip if a new version of the distro is available. When clicking on the adept-notifier icon it will launch adept-updater as usual. If a new distro version is available there will be an additional button "Upgrade Distribution" which will perform the dist-upgrade. The progress for this is: copy /etc/apt/sources.list to a backup file, update the /etc/apt/sources.list and doing the archive update, downloading and displaying the changelog, confirming to the user if they want to upgrade and then performing an apt-get dist-upgrade style upgrade. The upgrade must follow the same policy rules used in Ubuntu's dist-upgrader tool, notably ensuring that meta-packages remain installed, and should use code from dist-upgrader where possible to implement the logic. If the user cancels the update before any packages are installed Adept should gracefully revert to the backup copy of /etc/apt/sources.list file.

Channel support will be implemented to replace the existing Manage Repositories mode, this will allow Adept to handle deb source lines more intelligently. Channels will be described by .desktop files containing information including provider, distribution, description, base url, list of components. .desktop files are used because they are the common and easy way to store meta-data in KDE. For each component, there should be a sources.list line for binary and source packages. The "security" component should be handled specially, that is, always enabled by Adept whenever the channel is enabled. The .desktop file should also contain a list of mirrors. These .desktop files will then be used to provide a nice interface to manipulate sources.list lines (specified in AdeptUsability). The lines that are manually added or have no .desktop file for some reason will be presented as having only a single component and rest of the data will be inferred from Release file or other, if possible. The text "Custom Channel" will be used for sources.list lines that have no further data available.

OPTIONAL: Commercial repository support will be added which will offer the option of enabling repositories listed in files provided by app-install-data-commercial. This should follow the spec at https://wiki.kubuntu.org/ThirdPartyPackages. adept-installer should add a third tickbox for "Commercial Software". This will allow for installing software marked with X-AppInstall-Proprietary=true. If the software has an EULA file that should be displayed to the user. If the software has its own package archive the user will need to agree to have that archive enabled, if the user agrees the archive will be copied to /etc/apt/sources.list.d and the GPG key added. The software will then be installed as normal.

Outstanding Issues


CategorySpec

KubuntuEdgyPackageManager (last edited 2008-08-06 16:20:03 by localhost)