Features/PackageKit

= Include PackageKit in Fedora =

Summary
The upstream project !PackageKit is mostly stable and has had several releases. This project is hosted at www.packagekit.org

I recommend we add !PackageKit to Fedora 9, as an alternative package management system.

!PackageKit is a cross-distribution package management kit. It supports yum as well as other package management 'backends'.

!PackageKit is currently the default GUI package management tool for both GNOME and KDE for the Fedora 9 beta.

Owner

 * Name: RobinNorwood

Current status

 * Targeted release:  Fedora 9
 * Last updated: 2008-04-06
 * Percentage of completion: 100%

Detailed Description
!PackageKit is being developed by Richard Hughes and a significant team of developers. It includes functionality similar to pup and pirut. It includes a simple package management application, a package update notification applet, and various related tools. It uses D-Bus to communicate with a transient daemon process to perform user actions, and uses !PolicyKit for fine-grained authentication.

Benefit to Fedora
Fedora may benefit from using a GUI package management toolkit maintained in the open source community rather than inside Red Hat. Note that !PackageKit is not quite ready to replace pup and pirut, but its design does address some issues with Fedora's current package manager, and the active upstream development is also a hopeful sign.

Scope
!PackageKit and gnome-packagekit are currently at version 0.1.9. Both have been packaged, reviewed, and appear in rawhide. pirut has been replaced by gnome-packagekit as the default in comps. shared-mime-info has been updated to associate !PackageKit with rpms. gnome-menus has been updated to not show pirut in the Applications menu.

Open issues:


 * !PackageKit provides a script which covers some of the features of /usr/bin/system-install-packages, but not all. The new !PackageKit based script only accepts one argument.


 * How do we handle updates when nobody is logged in? E.g. security updates should still be installed.  pup/pirut/yum-updatesd avoid this problem by making yum-updatesd a system daemon that always runs. Possible approaches for !PackageKit:  Run gpk-update-icon in the sandbox session that the new gdm uses for the login screen. Alternatively, use a cron job to activate packagekitd periodically.  The latest release of !PackageKit includes a sub-package called !PackageKit-cron, which provides a cron job to do updates nightly.

Test Plan

 * 1) Test listing, installing, and updating RPMs using the gpk-application program.
 * 2) Test notification of updates by the pk-update-icon application, depending upon options set using the pk-prefs app.
 * 3) Test package updates using the pk-update-viewer application
 * 4) Verify that options for update frequency and automatic installation behave as intended.
 * 5) Verify that security updates get the right icon.
 * 6) Verify that update metadata (e.g xrefs to bugs and CVEs) are displayed correctly and functional.
 * 7) Test that clicking on rpms in nautilus works as expected.
 * 8) Test the handling of signed and unsigned packages.
 * 9) Work with Fedora QA to ensure test coverage.

User Experience
1. Users of !PackageKit should be able to manage local RPMs 1. Users should also be able to schedule updates automatically and use the applet for notification/approval of updates.

Dependencies

 * yum >= 3.2.7 (already in rawhide)
 * rawhide versions of dbus, dbus-glib, glib, and !PolicyKit

Contingency Plan

 * If for some reason !PackageKit does not meet our needs, we can fall back to pirut/pup for the final release.

Documentation

 * http://www.packagekit.org/pk-faq.html

Release Notes
PackageKit is a system designed to make installing and updating software on your computer easier. It provides GUI and commandline tools to provide user-friendly package management using Yum as the backend. PackageKit uses D-Bus to activate a daemon process to do the work, and uses PolicyKit for authentication.