[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Multi-arch all-architecture plugins

Ian Jackson <ijackson@chiark.greenend.org.uk> writes:

> Goswin von Brederlow writes ("Re: Please test gzip -9n - related to dpkg with multiarch support"):
>> Steve Langasek <vorlon@debian.org> writes:
>> >  the [pam] module packages should be installed
>> > for all archs, not just a subset[1].
>> Ok, that is acceptable. We just lack any technical means to ensure this
>> so far. Same problem as for input method plugins for example.
> So we need a new mechanism for this.
> Where should this fact be declared ?  Is it a property of a package
> that it makes sense to install it only on all configured architectures
> or none ?  Or is it a property of the dependency from the depending
> package ?
> I'm inclined to the former view.  After all if you think about
> installing some plugin, there may not even /be/ a dependency in
> question.  And I'm finding it difficult to imagine a package which has
> this all-arches-needed multiarch property for some of its purposes but
> not others.

I agree that it is the former and think it unlikely that there is a
dependency on it unless one all-arches-needed plugin depends on another.

> This situation can only arise for a m-a:same package, since only those
> are coinstallable.  I would suggest that the right answer is a new
> value for the Multi-Arch field, let's call it "all".  It would work
> like Multi-Arch: same except that:
>  * Dependencies on multiarch:all package are not satisfied unless
>    the package is suitably installed and configured on all configured 
>    architectures.  Ie with

As you said these are usualy plugins that nothing depends on. So this
wouldn't help much. Also if there is a dependency than the rules for
m-a:same should be sufficient. If the package is something to depend on
then packages of all architectures should depend on it if they use
it. The plugin might only be used by amd64 packages and none of the i386
would depend on it and then installing only amd64 is perfectly fine.

I would concentrate on the case that nothing depends on it and the
solution while keeping the depending case in the back of my mind.

>       Package: plugin
>       Multi-Arch: all
>       Architecture: i386
>       Package: plugin
>       Multi-Arch: all
>       Architecture: amd64
>    this dependency
>       Depends: plugin
>    is read as
>       Depends: plugin:i386, plugin:amd64
>  * The higher-level package manager, when it is asked to install a
>    multiarch:all package, will install it for all configured
>    architectures.
> Ian.

Another possible solution was to have a metapackage with wildcard

Package: plugin-all
Depends: plugin:*

One thing to keep in mind is that the list of architectures for the
system might change (the admin adds another architecture) making any
such all-archs dependencies suddenly unfullfilled. But that is probably
unavoidable and apt-get -f install would fix it right up.


Reply to: