PackageKit

Revision 4 as of 2008-01-02 14:00:11

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 underlying package system. Backends are available for systems like yum, apt, conary (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 interesting project that promises a unified way of package manipulation tools across 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 switching by abstracting the backend (currently python-apt) so that it's easy to flip a switch and make them use packagekit.

We need to investigate 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 conflict 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 an application 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 an extension 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 improve 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