PackageKit

Revision 2 as of 2007-11-21 11:56:44

Clear message

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: package-kit

  • Packages affected: apt, synaptic, update-manager, gnome-app-install, adept, gdebi

Summary

PackageKit is a new cross-distro framework that abstracts from the actual underlaying package system. Backends are available for systems like yum, apt, connary (and more).

This spec investigates how it affects us and if/how we can make use of it.

Release Note

TBD

Rationale

PackageKit is a very interessting project that promisses a unified way of package manipulation tools accross all distros.

Use Cases

  • Bob comes from a different linux distro that uses PackageKit and switches to Ubuntu. He feels at home immediately when he finds that ubuntu offers PackageKit too.

Design

The next ubuntu release will be a LTS so we take a cautious approach to the adoption of PackageKit. We will package Packagekit and make it available in our repository. Applications like gnome-app-install and update-manager will be prepared for switchting by abstracting the backend (currently python-apt) so that its easy to flip a switch and make them use packagekit.

We need to invetigate and discuss with upstream what to do about interaction during a package install. Currently during a package install interaction may be required for:

  • conffile prompts
  • debconf questions
  • terminal interaction

The debconf prompts can be made non-interactive easily with DEBIAN_FRONTEND=noninteractive. For the configuration we could add --force-confnew or --force-confold to the dpkg commandline (also this would conflicts with the expectations that traditional users have). The terminal interaction is the hardest problem. It is currently not forbidden by debian policy to ask terminal questions and some core applications like libc6 do that in situations. This is a problem for a applicaiton like update-manager where there is no control over the packages that are going to be installed. This problem needs to be discussed with upstream. A possible solution is to provide a extenstion to the current protocol that is debian/dpkg specific. Another is to make terminal interaction deprecated in debian policy and get packages to follow that.

We need to review the current status of the apt/dpkg backend and help improving it.

Implementation

Some packaging work is done by Sebastian Heinlein in https://code.edge.launchpad.net/packagekit/. A packagekit team is created.

Outstanding Issues

Interaction during install is a problem for us that needs to be solved first.


CategorySpec