GNOME-PackageKit packaging
Matthias Klumpp
matthias at nlinux.org
Sun Dec 5 16:40:06 UTC 2010
On Sat, 04 Dec 2010 15:23:51 +0100, Julian Andres Klode <jak at debian.org>
wrote:
> On So, 2010-11-21 at 18:45 +0100, Josselin Mouette wrote:
>> It’s not a problem of conflict or whatever. Again, I’d like to see a
>> *consistent* software stack for package management. Having pieces of
the
>> stack based on the PK backend and others based on aptdaemon is not a
>> long-term solution. Either we can base everything on aptdaemon, or we
>> can base everything on PK - oh wait, the crippled PK interface doesn’t
>> make this possible.
>
> Recently, I was looking a bit more at the Qt/KDE world, and found QApt
> and Muon. This is what we should be looking at for inspiration, and the
> base of the ideas outlined hereinafter.
... which is just a copy of the PK concept.
> We have to get rid of all applications currently running as root, we
> have to get rid of services like aptdaemon written in Python, and we
> need to create a common service useful for all desktop environments, and
> shall have clients for KDE and GTK+ environments. Finally, we also need
> to deal with developments such as multi-arch which are currently not
> handled at all. So here comes...
...do you say PackageKit, which was designed for exactly this case?
>
> Operation: Codenamed: PackageTool; draft 1
> ==========================================
>
> Backend: Cupt/APT/APT2
> |
> Service: packagetoold
> |
> Common Client: libpackagetool
> / \
> / \
> UI: libqpackagetool (KDE) libgpackagetool (GTK+)
> (A) -> kpt-packages -> gpt-packages
> (B) -> kpt-updates -> gpt-updates
> (C) -> kpt-software -> gpt-software
> (D) -> kpt-sources -> gpt-sources
>
> The goal:
> * A C/Vala library managing packages:
> * The cache is accessed directly
> * Installation/removal happens via D-Bus
> * Two D-Bus services:
> * An Implementation of PackageKit
> * A custom one, inspired by aptdaemon and QApt
> * 4 applications using the library:
> A. Package Manager => low-level PM like Synaptic
> B. Update Manager => combination of -manager, -notifier
> C. Software Center => application-oriented version of A
> D. Software Sources => manages sources.list
Okay, why not base all this on existing PackageKit code? Could look like
the following:
Operation: Codenamed: PackageKit + Debian;
==========================================
Backend: Cupt/APT/APT2
|
Service: packagetoold
|
Common Client: libpackagekit-glib2 or libpackagekit-qt (PackageKit
bindings)
|
libpackagetool (*)
/ \
/ \
UI: libqpackagetool (KDE) libgpackagetool (GTK+)
(A) -> kpt-packages -> gpt-packages
(B) -> kpt-updates -> gpt-updates
(C) -> kpt-software -> gpt-software
(D) -> kpt-sources -> gpt-sources
... or use the PackageKit UIs:
libkpackagekit (KDE) libpackagekit-gtk (GTK+)
-> KPackageKit -> gpk-application
-> ... -> gpk-repos
-> ...
The goal:
* A C/Vala library managing packages:
* The cache is accessed directly
* Installation/removal happens via D-Bus
* Only one D-Bus service:
* PackageKit for all stuff which needs to be executed as
root
* 4 applications using the library:
A. Package Manage => low-level PM like Synaptic, using a
Debian-specific package-manager lib
B. Update Manager => combination of -manager, -notifier,
can be based on PackageKit
C. Software Center => application-oriented version of A,
can use PK
D. Software Sources => manages sources.list, can also use PK
(*) => Libpackagetool could use the PackageKit-daemon if possible,
otherwise, for example for searching the cache, it could use APT directly.
Would provide exactly the same stuff be reusing existing and well-tested
code. Why not improve PackageKit?
> Each application shall only do one thing. A and C shall install/remove
> packages, but not manage updates. B shall update the system and display
> notifications.
>
> This is just a rough draft (and somewhat of an APT2 plan at the same
> time), I do not have much precise stuff yet. It's basically like
> PackageKit, just from the Debian perspective.
>
> On the library side, libpackagetool should not expose any D-Bus
> specifica, and keep the D-Bus specific parts in a module; allowing it to
> be used to implement backend as well (that's APT2's plan).
> lib{g,q}packagetool provide common widgets for the applications.
>
> We shall explore what we can do with PackageKit in this area, whether it
> is possible to enhance it to do what we need to do (by adding methods
> prefixed with Debian if needed); or whether we should go our own way.
Yep, exactly. PackageKit serves all needs of Debian at time, and AFAIK as
a long-term-plan, USC will base on PK too. I can also imagine to use PK for
all privileged actions Synaptic performs. Since PK supports Debconf,
there's no APT feature, except some special ones like APT-pinning, which is
not supported by PK.
I will ask Richard and Michael if we could set up a discussion on IRC or
something similar about this.
Kind regards
Matthias
More information about the pkg-gnome-maintainers
mailing list