Re: [gentoo-portage-dev] Conflicting RDEPENDS
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
-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
-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
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
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.
[gentoo-portage-dev] Conflicting RDEPENDS
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi, (The following is done with portage-2.2_rc33) I created some small test-packages for the following usecase: 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. Regards, René P.S.: In case it matters: You can find the repository containing the trivial ebuilds here: https://code.launchpad.net/~necoro/+junk/test_repo -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkofH/QACgkQ4UOg/zhYFuDK/ACfegI2ylDDQV1/VZu+XAXUMUpL 9icAnRSvVxoK/XuZhOO3jWlXmXUjWV7p =1RJK -END PGP SIGNATURE-