Differences between revisions 33 and 34
Revision 33 as of 2010-11-02 11:23:32
Size: 3772
Editor: ?RichardHughes
Comment: add a few notes about the newly added debconf support, hope this is okay
Revision 34 as of 2010-11-19 15:30:01
Size: 4213
Editor: ?MatthiasKlumpp
Comment: Updated complete page.
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
The purpose of this side is to provide information to the apt backend of [[http://www.packagekit.org|PackageKit]] and the integration in Debian. PackageKit tries to make simple and common software management tasks easier and smoother among all/most distributions. Therefor it provides a distribution neutral DBus interface. The purpose of this site is to provide information to the APT and APTcc backend of [[http://www.packagekit.org|PackageKit]] and the integration in Debian. PackageKit tries to make simple and common software management tasks easier and smoother among all/most distributions. Therefor it provides a distribution neutral DBus interface.
Line 3: Line 3:
The smart based backend is not covered here. The Smart backend is not covered here.
Line 9: Line 9:
The backend is already shipped in Ubuntu Universe and seems to accomplish the basic tasks. The list of supported features can be found in the PackageKit FAQ: http://packagekit.org/pk-faq.html PackageKit backend is shipped in Debian Sid and set as default in Kubuntu.
Line 14: Line 14:
{{{
Line 16: Line 16:
}}}
Line 20: Line 21:

Debian packaging can be obtained via
{{{#!bash
apt-get source packagekit
}}}
Line 27: Line 33:
Packages for Debian are at work: [[DebianBug:468132|ITP #468132]] Packages for Debian are finsihed. (See [[DebianBug:468132|ITP #468132]])
Line 41: Line 47:
=== APT backends ===

PackageKit has two backends for APT. One called "APT", which is Python-based and one called "APTcc", which is written in C++. The defaulr PackageKit backend in Debian is set to APTcc, as it has less bugs, a lower memory usage and supports debconf.
Line 47: Line 57:
By [[http://www.debian.org/doc/debian-policy/ch-binary.html#s-maintscriptprompt|Debian Policy]] it is no longer supported to prompt for input on stdin in maintainer scripts. The apt backend has got a time out of 10 minutes before it cancels a hanging script to handle broken packages. By [[http://www.debian.org/doc/debian-policy/ch-binary.html#s-maintscriptprompt|Debian Policy]] it is no longer supported to prompt for input on stdin in maintainer scripts. The APT and APTcc backend has got a time out of 10 minutes before it cancels a hanging script to handle broken packages.
Line 52: Line 62:
There is an effort to change dpkg to use debconf for handling file conflicts. There is an effort to change dpkg to use Debconf for handling file conflicts.
Line 60: Line 70:
PackageKit has support for Debconf if the APTcc backend is used. See [[http://blogs.gnome.org/hughsie/2010/11/02/packagekit-and-debian-2/]] for details. PackageKit has support for debconf if the APTcc backend is used. See [[http://blogs.gnome.org/hughsie/2010/11/02/packagekit-and-debian-2/]] for details.
Line 62: Line 72:
KPackageKit creates a debconf-kde instance ( DebconfGui() ), which receives a path to create a socket on /tmp. The path is then passed to PackageKit which pass to the aptcc backend which sets an env var that debconf uses to communicate to debconf-kde. KPackageKit creates a debconf-kde instance ( DebconfGui() ), which receives a path to create a socket on /tmp. The path is then passed to PackageKit which pass to the APTcc backend which sets an env var that debconf uses to communicate to debconf-kde.
Line 64: Line 74:
For clients that use PackageKit-glib2 (such as pkcon and GNOME PackageKit) a socket is automatically created and passed to the apt backend since PackageKit 0.6.10. For clients that use PackageKit-glib2 (such as pkcon and GNOME-PackageKit) a socket is automatically created and passed to the current APT backend since PackageKit 0.6.10.
Line 70: Line 80:
The corresponding bits of the apt backend reuse the gnome-app-install infrastructure. The corresponding bits of the APT backends reuse the gnome-app-install infrastructure.
Line 80: Line 90:
Anjuta, Totem, Nautilus, Zero-Install, Dr.Konqui and many more applications can make use of PackageKit. See http://packagekit.org/pk-users.html for reference.

The purpose of this site is to provide information to the APT and APTcc backend of PackageKit and the integration in Debian. PackageKit tries to make simple and common software management tasks easier and smoother among all/most distributions. Therefor it provides a distribution neutral DBus interface.

The Smart backend is not covered here.

Current State

PackageKit backend is shipped in Debian Sid and set as default in Kubuntu.

Code

The development takes place in the git repository of PackageKit:

git clone git://gitorious.org/packagekit/packagekit.git

The packaging for Ubuntu can be found here:

https://code.launchpad.net/packagekit/

Debian packaging can be obtained via

apt-get source packagekit

Packages

Binary and source packages for Ubuntu can be obtained here:

https://edge.launchpad.net/~packagekit/+archive

Packages for Debian are finsihed. (See ITP #468132)

Discussion

The main place for discussion is the PackageKit mailing list:

http://lists.freedesktop.org/mailman/listinfo/packagekit

The discussion of unresolved issues was archived to wiki:/Discussion.

Debian Integration

In the following you will find a list of unique dpkg/apt features and how they are addressed.

APT backends

PackageKit has two backends for APT. One called "APT", which is Python-based and one called "APTcc", which is written in C++. The defaulr PackageKit backend in Debian is set to APTcc, as it has less bugs, a lower memory usage and supports debconf.

Non-Interactiveness

By Hughsie's Law a running task (PackageKit transaction) is not allowed to wait for user input. But this is the case in several situations using dpkg/apt (debconf and conf files).

Standard In

By Debian Policy it is no longer supported to prompt for input on stdin in maintainer scripts. The APT and APTcc backend has got a time out of 10 minutes before it cancels a hanging script to handle broken packages.

Configuration File Conflict

PackageKit defaults to keep the current configuration and showing a message to the user about the configuration file conflict. There is an effort to change dpkg to use Debconf for handling file conflicts.

Media Changes

Using CD-ROM or DVD as installation source is supported by PackageKit since 0.4.7 version (released in may 2009).

Debconf

PackageKit has support for debconf if the APTcc backend is used. See http://blogs.gnome.org/hughsie/2010/11/02/packagekit-and-debian-2/ for details.

KPackageKit creates a debconf-kde instance ( ?DebconfGui() ), which receives a path to create a socket on /tmp. The path is then passed to PackageKit which pass to the APTcc backend which sets an env var that debconf uses to communicate to debconf-kde.

For clients that use PackageKit-glib2 (such as pkcon and GNOME-PackageKit) a socket is automatically created and passed to the current APT backend since PackageKit 0.6.10.

If the client closes the debconf window, it will default to non-interactive frontend of debconf, allowing unattended upgrades to happen.

Codec Installation

The corresponding bits of the APT backends reuse the gnome-app-install infrastructure.

Applications

Currently there isn't any application in Debian which makes use of PackageKit.

There is a prototype of gnome-app-install using PackageKit instead of Synaptic. A screencast can be found here.

The Listaller Project also created a software management solution on top of PackageKit which is compatible with LOKI/Mojo/Autopackage setups too.

Anjuta, Totem, Nautilus, Zero-Install, Dr.Konqui and many more applications can make use of PackageKit. See http://packagekit.org/pk-users.html for reference.