[packagekit] Features discussion/request KPackageKit

Richard Hughes hughsient at gmail.com
Thu Nov 20 02:44:46 PST 2008


On Thu, 2008-11-20 at 10:56 +0100, Thomas Goettlicher wrote:
> 1. Warn and Add when No Update Repository is Defined
> ----------------------------------------------------
> kupdateapplet shows a warning when no update repository exists and gives
> the user a chance to add an update repository. kupdateapplet assumes
> that no update repo exists if no repository's name or url contains the
> string 'update'. Perhaps there is a cleaner way. 
> Dunno a distro independend way to find and add an update repo. On
> openSUSE it is done by 'yast2 online_update_configuration'.

Right, this sort of heuristic belongs in the suse-specific backend. What
I would say is best is:

(no update repos configured)

C: GetUpdates()
S: ::Warning(NO_UPDATE_REPOS_CONFIGURED, "no update repos are
configured")
S: ::Finished(SUCCESS)

and then you get a little notification box with the warning. This would
then work in KDE and GNOME, and be localised.

> 2. Manual Installation on Errors
> --------------------------------
> When an operation like package update fails (e.g. dependency problems)
> kupdateapplet allows to start openSUSE's packagemanager that supports
> those complicated scenarios. 

Hmm, surely the issue is you need to fix the repo? What if there's no
user in front of the computer and it's an automatic update? Can't you do
the equivalent of a "yum --skip-broken update" where you update
everything that's possible, and then return INFO_BLOCKED for the others?

> 3. Distribution Upgrade
> -----------------------
> kupdateapplet asks via 'GetDistroUpgrades' for an available distribution
> upgrade and starts '/usr/bin/wagon' if needed and the user wishes to.
> We'd need a distribution independent way to trigger a distro upgrade.

Right. You need to add wagon
to /usr/share/PackageKit/pk-upgrade-distro.sh and then get the
GetDistroUpgrades calling method to call execute pk-upgrade-distro.sh

In the gnome applet I've tied the more information button to the script
-- for fedora this launches preupgrade:
http://www.packagekit.org/img/gpk-distro-upgrade-notify.png

This will make any future frontends work with all distros without
patching the frontend.

> 4. Send System Profile
> ----------------------
> kupdateapplet shows a popup that asks the user whether he wants to take
> part with his system data in the smolt project. This isn't package
> management specific and I don't know whether KPackageKit is the right
> application for that.

No, I don't think it is.

> 5. Postpone Operation when System isn't Ready
> ---------------------------------------------
> When the system is busy, on battery or not connected to the network
> checking for updates or installation of updates should wait until the
> system is ready.

Right, this is what I do with the gnome frontend, so the KDE one should
do this for sure. You can use the GetNetworkState() API call on
org.freedesktop.PackageKit to be able to work with and without
NetworkManager.

> 6. Disable Auto Suspend while Operation 
> ---------------------------------------
> While package installation power management auto suspend should be
> disabled.

Yup, the KDE frontend needs to call Inhibit() like the gnome one does.
Yell if you need a hand here.

> 7. Install Firmware and Drivers
> -------------------------------
> a) Search and install firmware that belongs to files
> in /var/run/PackageKit/udev/*.
> b) KDE Solid::DeviceNotifier sends a signal when new hardware is
> attached. WhatProvides(drivers) returns needed drivers.

Yes, what we have at the moment in GpkHardware is a skeleton on what it
should be. If you have any good ideas on how to match up "hardware" with
"drivers" it would be good.

Richard.




More information about the PackageKit mailing list