[packagekit] PackageKitExtra - package abstraction

Patryk Zawadzki patrys at pld-linux.org
Tue Feb 19 01:37:53 PST 2008


On Feb 18, 2008 6:59 PM, Richard Hughes <hughsient at gmail.com> wrote:
> On Mon, 2008-02-18 at 12:09 +0100, Sebastian Heinlein wrote:
> > To achive this all .desktop files are extracted from the archive and
> > stored in a cache with some extra information. Currently all desktop
> > files are shiped in the app-install-data package so that the cache can
> > be rebuild afterwards again.

That's a horrible horrible hack and would be a huge pain to maintain
in a consistent and up-to-date way for any distro with daily updates
(think "* unstable" or always-in-development distros).

> > Here is the list of extra attributes that we use:
> >
> > * X-AppInstall-Package
> > Name of the corresonding package
> Sure.

This belongs to "xdg online desktop" (currently mugshot).

> > * X-AppInstall-Popcon
> > Integer that gives an idea how popular an application is. Calculated
> > from user statistics.
> From where? I figured we could use the mugshot stats for this.

Same as above.

> > * X-AppInstall-Architectures
> > The architectures which are supported by the package
> Is this important?

Same question here, if the architecture is not supported, user should
not even see the package. It's not like you're gonna buy a new PC to
install a package.

> > * X-AppInstall-Proprietary
> > Does it contain non-free code?
> Surely a licence would be a better field? Then the daemon can decide
> what is free and what isn't.

Looks like this is just a local interpretation of license.

> > * X-AppInstall-Supported
> > Is it supported by Canonical?

What if it's supported by a third party? Like nero for linux (which is
crappy software but supported by ahead).

> > * X-AppInstall-Channel
> > Label of a third party repository that contains the package of the
> > application and needs to be enabled before.
> You mean installing an application install can enable and then disable a
> repository? Isn't this a security risk?

Agreed, if packages can add/remove/enable/disable repos at will, the
whole distro repo concept is crippled.

> > * X-AppInstall-Codecs
> > List of codes that are supported by the application. There are some
> > manual created applications for codec packages.
> A list of mime/types?

This belongs in the package headers/repo indices. Think rpm's
Provides: mime(foo/bar) or deb's counterpart. Should be handled by
backends.

> > * X-AppInstall-PatentBadness
> > Possibly problematic code inside.
> Surely Proprietary == PatentBadness from a user's point of view?

Not really. Nero for Linux is proprietary but not patent crippled,
ffmpeg is opensource but considered prone to patent wars.

> > If you type in a not installed command into your terminal, Ubuntu
> > currently looks in to a command cache and presents packages that provide
> > this command:
> >
> > renate at laptop:~$ ncftp ftp.ubuntu.com
> > The program 'ncftp' can be found in the following packages:
> >  * ncftp
> >  * ncftp2
> > Try: sudo apt-get install <selected package>
> > bash: ncftp: command not found
> This is very cool for new users and something that I've sorely wanted in
> Fedora for new users. How do you generate the binary->package table and
> keep it updated?

Just ask repo indices for a package that contains a particular binary?
Looks like backend's job.

> On top of this it is trivial to build an executable like
> pk-command-not-found which does the prompting for installation (rather
> than telling the user what to do) as we can now install as non-root.

Ugh. That would mean I can type stuff like sperl to install a suid
binary (security problem). I don't think the whole feature would be
all that useful. Your casual Jane User is very unlikely to launch a
terminal and type stuff like "firefox" while an admin would certainly
just install apache instead of typing "apachectl" and waiting for the
shell to install random pieces of software.

-- 
Patryk Zawadzki
PLD Linux Distribution



More information about the PackageKit mailing list