Differences between revisions 43 and 45 (spanning 2 versions)
Revision 43 as of 2022-09-04 13:01:46
Size: 5252
Editor: ?StevenDeHerdt
Comment: Replace dead links to project site, add note about stagnation.
Revision 45 as of 2022-09-05 02:38:08
Size: 4347
Editor: PaulWise
Comment: more cleanup
Deletions are marked like this. Additions are marked like this.
Line 12: Line 12:
PackageKit backend is shipped in Debian Sid and set as default in Kubuntu. PackageKit backend is shipped in Debian and set as default in Kubuntu.
Line 17: Line 17:
Line 18: Line 19:
git clone git://gitorious.org/packagekit/packagekit.git git clone https://github.com/PackageKit/PackageKit.git
Line 22: Line 23:
Line 23: Line 25:
git clone git://anonscm.debian.org/pkg-packagekit/packagekit.git debcheckout packagekit
Line 28: Line 30:
apt-get source packagekit apt source packagekit
Line 33: Line 35:
Binary and source packages for Ubuntu can be obtained here:

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

Packages for Debian are available. (See [[DebianBug:468132|ITP #468132]])
You can find them in [[http://packages.debian.org/search?keywords=packagekit&searchon=names&suite=all&section=all|the Archives]]
Source and binary and packages are available in Debian and Ubuntu.
Line 44: Line 41:
http://lists.freedesktop.org/mailman/listinfo/packagekit https://lists.freedesktop.org/mailman/listinfo/packagekit
Line 64: Line 61:
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. By [[https://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 77: Line 74:
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 [[https://blogs.gnome.org/hughsie/2010/11/02/packagekit-and-debian-2/|has support for debconf]] if the APTcc backend is used.
Line 79: Line 76:
Apper (PackageKit KDE UI) 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. Apper (PackageKit KDE UI) 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 91: Line 88:
DebPkg:gnome-packagekit uses PackageKit to provide package installation/removal, upgrades and search in Software Center.

There is a prototype of gnome-app-install using PackageKit instead of Synaptic. A screencast can be found [[http://www.glatzor.de/fileadmin/files/screencasts/packagekit/gai-using-pk.ogg|here]].

The [[http://listaller.tenstral.net|Listaller Project]] provides a PackageKit plugin which adds support for the distro-agnostic Linux software installer "Listaller" to PackageKit. (Integrating Listaller seamlessly into all applications which make use of PackageKit)

Anjuta, Totem, Nautilus, Zero-Install, Dr.Konqui and many more applications can make use of PackageKit. See https://www.freedesktop.org/software/PackageKit/pk-users.html for reference.
Many [[https://www.freedesktop.org/software/PackageKit/pk-users.html|applications]] can make use of PackageKit to allow users to manage packages, or request the user install packages.
Line 100: Line 91:
 CategoryPackageManagement CategoryPackageManagement

Translation(s): English - español

(!) Discussion


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. With the rise of new packaging systems like Flatpak, Snap and immutable base images PackageKit is now considered to be in maintenance mode according to this blog post.

The Smart backend is not covered here.

Current State

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

Code

The development takes place in the git repository of PackageKit:

git clone https://github.com/PackageKit/PackageKit.git

Debian & Ubuntu packaging can be obtained via Git:

debcheckout packagekit

Or via APT:

apt source packagekit

Packages

Source and binary and packages are available in Debian and Ubuntu.

Discussion

The main place for discussion is the PackageKit mailing list:

https://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 default PackageKit backend in Debian is set to APTcc, as it has less bugs, a lower memory usage and supports debconf.

Non-Interactiveness

As explained in the FAQ 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).

(This used to be called Hughsie's Law.)

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.

Apper (PackageKit KDE UI) 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

Many applications can make use of PackageKit to allow users to manage packages, or request the user install packages.


CategoryPackageManagement