Re: [gentoo-portage-dev] Conflicting RDEPENDS

2009-05-29 Thread Patrick Börjesson
On Fri, May 29, 2009 at 01:36:20AM +0200, René 'Necoro' Neumann wrote:
 Package spam rdepends on =eggs-2.
 Package bacon rdepends on =eggs-1.
 
 So in theory there should be no way of installing them together (given
 that eggs is not slotted). This works if I try to install them in one go.
 
 !!! Multiple package instances within a single package slot have been pulled
 !!! into the dependency graph, resulting in a slot conflict:
 
 app-test/eggs:0
 
   ('ebuild', '/', 'app-test/eggs-2', 'merge') pulled in by
 =app-test/eggs-2 required by ('ebuild', '/', 'app-test/spam-1', 'merge')
 
   ('ebuild', '/', 'app-test/eggs-1', 'merge') pulled in by
 =app-test/eggs-1 required by ('ebuild', '/', 'app-test/bacon-1',
 'merge')
 
 
 It looks different, if spam is installed and I try to install bacon
 additionally:
 
 # emerge -1av bacon
 
 These are the packages that would be merged, in order:
 
 Calculating dependencies... done!
 [ebuild UD] app-test/eggs-1 [2] 0 kB [1]
 [ebuild  N] app-test/bacon-1  0 kB [1]
 
 
 This second behavior looks wrong to me, as it downgrades the RDEPEND of
 spam and thus spam becomes unusable.

Try: emerge -1av --complete-graph bacon

Unless --complete-graph is specified emerge won't pull in the entire
dependency graph, thus won't notice the dependency-spec of
app-test/spam. 
Using -D combined with the world set when updating your system yields
the same result as that also pulls in the entire dependency graph. 

Unless the entire dependency graph is pulled in emerge only tries to
satisfy the dependencies of the packages given on the commandline, and
since there's no connection between app-test/spam and app-test/bacon,
and emerge doesn't do reverse deps when adding something to the
dep-graph, it doesn't notice that app-test/bacon and app-test/spam has
conflicting dependencies

Using --complete-graph is noticably slower since it slows down
dependency calculations, but it should (IMHO) really be the default
since these conflicts shows _before_ anything breaks. 



Re: [gentoo-portage-dev] Conflicting RDEPENDS

2009-05-29 Thread René 'Necoro' Neumann
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Ferris McCormick schrieb:
 It looks different, if spam is installed and I try to install bacon
 additionally:
 
 # emerge -1av bacon
 
 These are the packages that would be merged, in order:
 
 Calculating dependencies... done!
 [ebuild UD] app-test/eggs-1 [2] 0 kB [1]
 [ebuild  N] app-test/bacon-1  0 kB [1]
 
 
 What happens if you use
 emerge -1avD bacon
 

Does not work either.

 This second behavior looks wrong to me, as it downgrades the RDEPEND of
 spam and thus spam becomes unusable.
 
 
 Yeah, it does look wrong, but I don't think it is.  Ideally, I suppose
 eggs-1 could depend on !=app-test/spam-1 and so on, but that requires
 coordination among developers.  I suppose there is a bug in the ebuilds
 because they should be set up so that if you have spam installed, you
 can't install bacon and so on.

I think, this would be the wrong way., as they block each other already
because of the RDEPEND. Else one would have to check the whole tree for
a conflicting RDEPEND and then adding a whole bunch of blocks.
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkofqzsACgkQ4UOg/zhYFuD4XQCeKUuemmNjWr7shtgsttc93sro
1U0An0SrsWexvLUmYtvzyjokpZiQyqSm
=vvTO
-END PGP SIGNATURE-



Re: [gentoo-portage-dev] Conflicting RDEPENDS

2009-05-29 Thread René 'Necoro' Neumann
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Patrick Börjesson schrieb:

 # emerge -1av bacon

 These are the packages that would be merged, in order:

 Calculating dependencies... done!
 [ebuild UD] app-test/eggs-1 [2] 0 kB [1]
 [ebuild  N] app-test/bacon-1  0 kB [1]


 This second behavior looks wrong to me, as it downgrades the RDEPEND of
 spam and thus spam becomes unusable.
 
 Try: emerge -1av --complete-graph bacon

Ok - this works ... IF spam is in world. If I installed spam with
- --oneshot, it won't work either.

 Unless --complete-graph is specified emerge won't pull in the entire
 dependency graph, thus won't notice the dependency-spec of
 app-test/spam. 
 Using -D combined with the world set when updating your system yields
 the same result as that also pulls in the entire dependency graph. 
 
 Unless the entire dependency graph is pulled in emerge only tries to
 satisfy the dependencies of the packages given on the commandline, and
 since there's no connection between app-test/spam and app-test/bacon,
 and emerge doesn't do reverse deps when adding something to the
 dep-graph, it doesn't notice that app-test/bacon and app-test/spam has
 conflicting dependencies
 
 Using --complete-graph is noticably slower since it slows down
 dependency calculations, but it should (IMHO) really be the default
 since these conflicts shows _before_ anything breaks. 

I agree.

Regards,
René
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkofq+sACgkQ4UOg/zhYFuBhsACdEUiXen0NriASzULe0Ak9Waiv
6v8An1OxTqmbnhlCk7sRG0pYxfHJad8Y
=Haya
-END PGP SIGNATURE-



Re: [gentoo-portage-dev] Conflicting RDEPENDS

2009-05-29 Thread Alec Warner
On Fri, May 29, 2009 at 2:33 AM, René 'Necoro' Neumann li...@necoro.eu wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 Patrick Börjesson schrieb:

 # emerge -1av bacon

 These are the packages that would be merged, in order:

 Calculating dependencies... done!
 [ebuild UD] app-test/eggs-1 [2] 0 kB [1]
 [ebuild  N] app-test/bacon-1  0 kB [1]


 This second behavior looks wrong to me, as it downgrades the RDEPEND of
 spam and thus spam becomes unusable.

 Try: emerge -1av --complete-graph bacon

 Ok - this works ... IF spam is in world. If I installed spam with
 - --oneshot, it won't work either.

So don't use --oneshot :)


 Unless --complete-graph is specified emerge won't pull in the entire
 dependency graph, thus won't notice the dependency-spec of
 app-test/spam.
 Using -D combined with the world set when updating your system yields
 the same result as that also pulls in the entire dependency graph.

 Unless the entire dependency graph is pulled in emerge only tries to
 satisfy the dependencies of the packages given on the commandline, and
 since there's no connection between app-test/spam and app-test/bacon,
 and emerge doesn't do reverse deps when adding something to the
 dep-graph, it doesn't notice that app-test/bacon and app-test/spam has
 conflicting dependencies

 Using --complete-graph is noticably slower since it slows down
 dependency calculations, but it should (IMHO) really be the default
 since these conflicts shows _before_ anything breaks.

 I agree.

 Regards,
 René
 -BEGIN PGP SIGNATURE-
 Version: GnuPG v2.0.11 (GNU/Linux)
 Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

 iEYEARECAAYFAkofq+sACgkQ4UOg/zhYFuBhsACdEUiXen0NriASzULe0Ak9Waiv
 6v8An1OxTqmbnhlCk7sRG0pYxfHJad8Y
 =Haya
 -END PGP SIGNATURE-





Re: [gentoo-portage-dev] Conflicting RDEPENDS

2009-05-29 Thread Patrick Börjesson
On Fri, May 29, 2009 at 11:33:31AM +0200, René 'Necoro' Neumann wrote:
 Patrick Börjesson schrieb:
 
  # emerge -1av bacon
 
  These are the packages that would be merged, in order:
 
  Calculating dependencies... done!
  [ebuild UD] app-test/eggs-1 [2] 0 kB [1]
  [ebuild  N] app-test/bacon-1  0 kB [1]
 
 
  This second behavior looks wrong to me, as it downgrades the RDEPEND of
  spam and thus spam becomes unusable.
  
  Try: emerge -1av --complete-graph bacon
 
 Ok - this works ... IF spam is in world. If I installed spam with
 --oneshot, it won't work either.

Why exactly would you want to use --oneshot for a leaf package that is
not depended on by any other package in the world set? If spam IS
depended on by any other package (recursively) in the world set, it will
be pulled in by --complete-graph, but that's not the case here if i
understand it correctly, thus it's a package that you explicitly wanted
installed, thus it belongs in the world set, and you should thus not use
--oneshot for it.