[Rpm-maint] Re: [packaging] RFC: Berlin Packaging API

Thomas Leonard talex5 at gmail.com
Fri Feb 29 07:57:52 UTC 2008

On 28/02/2008, Edward Welbourne <eddy at opera.com> wrote:
> Everything I've seen to date about 0install looks good.  The one area
>  where I have doubts (which may be more my ignorance than the facts) is
>  integration with the native packaging system, particularly where it
>  comes to virtual packages.  In (at least) Debian, packages can declare
>  that they provide some given virtual package, on which other packages
>  then depend.  As long as one package that provides the virtual package
>  is installed, packages that require it are happy.

You should be able to use a normal package for this. e.g. (N.B. this
package doesn't actually exist at the moment!) depend on


This package would provide a command 'x-www-browser' that runs the
user's preferred browser, and you don't have to worry about which one
that is.

Remember that Zero Install lets the user choose which implementation
(version) of a package to use, so you can have one implementation that
depends on Opera, another that depends on Firefox, etc.

(However, the GUI isn't well suited to this at the moment because you
can't name the alternatives, so you'd have to select one and see what
its dependencies were, but that could be fixed, of course. Also, it
would pick one by default, more or less at random. You might want to
force the user to choose.)

The user can also add extra feeds for an interface. For example, the
http://freedesktop.org/x-www-browser interface would, by default, have
a single feed with the URL "http://freedesktop.org/x-www-browser".

If this feed didn't list Opera as an option, the user could click on
"Add Remote Feed" and drag in a third-party feed that did list it.
Native packages can also add feeds (e.g. an Opera.deb could register
itself at install time if installed using apt-get).

>  Then there are the non-strict dependencies (Recommends and Suggests,
>  in Debian parlance, as distinct from Requires).

This is probably a good idea (it's on the TODO list ;-). However, I
usually use a different scheme, which is to pull in optional
components as they are needed.

So for Flash, I'd probably not declare it as a dependency, but if the
user viewed a page with Flash in it, the video would appear as a
button you could press to run it. At that point, the browser would run
Flash using Zero Install (it might be on the machine already, or it
might pop up a download box). Whether to display Flash automatically
is then a configuration setting of the browser.

However, doing that ties you into using Zero Install (the Opera binary
would contain a call to the '0launch' command). Supporting optional
dependencies explicitly would solve that, although it's a bit less
dynamic because you'd have to restart the browser to add a new plugin.

>  Actually, there's no such meta-package, so we list all of the known
>  flash plugins (which is sub-optimal, as the suggestion could just as
>  readilly be met by one we haven't heard of) and leave the user to
>  chose.  As for flash, so for every other kind of content that relies
>  on plugins.

Dr Thomas Leonard		http://rox.sourceforge.net
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1

More information about the Rpm-maint mailing list