[Aptitude-devel] Bug#680822: aptitude fails to install libphonon-dev and phonon-backend-gstreamer

Daniel Hartwig mandyke at gmail.com
Wed Nov 28 05:32:39 UTC 2012


Control: tags -1 + moreinfo

Note that the initial report concerns sbuild calling apt-get to install
build-dependencies *indirectly* via a dummy-build-depends package.  The
second message is a test case, where aptitude is asked to *directly*
install specific packages.  These two modes are not equivalent; even if
both were using aptitude, the algorithms for each mode have subtle
differences.

Evgeni Golov <evgeni at debian.org> wrote:
> `aptitude install libphonon-dev phonon-backend-gstreamer` gives
>  The following packages have unmet dependencies:
>   phonon-backend-null : Conflicts: phonon-backend which is a virtual package.
>  The following actions will resolve these dependencies:
>
>       Keep the following packages at their current version:
>  1)     libphonon-dev [Not Installed]
>  2)     phonon-backend-null [Not Installed]
> (cowbuilder aborts here).
>
> However, `apt-get install libphonon-dev phonon-backend-gstreamer` works just
> fine.

The solution offered by aptitude is a valid resolution for the conflict.
For reference, subsequent offers are:
> Accept this solution? [Y/n/q/?] n
> The following actions will resolve these dependencies:
>
>      Keep the following packages at their current version:
> 1)     phonon-backend-gstreamer [Not Installed]           
>
>
>
> Accept this solution? [Y/n/q/?] n
> The following actions will resolve these dependencies:
>
>      Install the following packages:                      
> 1)     phonon [4:4.6.0.0-2 (unstable)]                    
>
>      Keep the following packages at their current version:
> 2)     phonon-backend-null [Not Installed]                

and this third one appears equivalent to how apt-get resolves the same
request.

Evgeni Golov <evgeni at debian.org> continues:
> Not sure why it tries phonon-backend-null at all (I requested
> phonon-backend-gstreamer), but I think this is because libphonon-dev 
> depends on
> phonon-backend-null | phonon
> and not
> phonon-backend-null | phonon-backend

Yes, that is why it tries to install -null.

Aptitude and it's dependency solver are intended mainly for interactive
use.  It is not a bug simply because aptitude may attempt to handle a
request with a different set of installs to apt-get, or initially
suggests a different resolution to a particular conflict than apt-get
would take.

Regarding the assignment to aptitude, Neil Williams
<codehelp at debian.org> wrote:
> … this does look
> like aptitude just not handling the Provides: Conflicts: correctly

1) Aptitude is asked to install libphonon-dev and
   phonon-backend-gstreamer.
2) There is no requirement to resolve dependencies of packages in any
   particular order.
3) Aptitude chooses to install phonon-backend-null to satisfy a
   dependency of libphonon-dev.
4) Aptitude does not consider that -null conflicts with itself via
   the virtual package phonon-backend.  Debian Policy requires that
   self-conflicts via virtual packages are ignored.
5) Aptitude does recognize that -null conflicts with -gstreamer via
   phonon-backend.  This conflict is reported.
6) Various solutions to (5) are offered.  The first few of these appear
   to be valid and the third covers the solutions that apt-get would
   find.

Can you be more precise about how aptitude has “not handled the
Provides: Conflicts: correctly”?  (4) and (5) seem correct to me.

> when
> other parsers are not affected.

The different behaviour of apt-get and aptitude is due to differences in
how they choose to satisfy dependencies and resolve conflicts that
arise.  This does not imply that either program is broken.

Regards



More information about the Aptitude-devel mailing list