Created attachment 434470 [details] Output of emerge --info 'sys-devel/gcc:4.9.3' gcc-4.9.3 has the following "negative dependency": !multislot? ( !<${CATEGORY}/gcc-4.9 ) which means that if gcc-4.9.3 is installed with -multislot (as it is by default), earlier versions of gcc should not be installed on the same machine. However, actually, when I have gcc-4.9.3[-multislot] already installed, and I try ~ # emerge -av sys-devel/gcc:4.7.4 I get no errors, and gcc-config -l gives me a correct list. So, portage allows me to install two packages that should not be installed on the same system (according to ebuilds). Only later, if I try to re-emerge gcc-4.9.3, I get an error message saying that it conflicts with gcc-4.7.4. This behaviour does not look correct for me. I think the problem might be broader, for example, suppose I have two packages, A and B. A has DEPEND="!B", B has no dependencies. Then if I first install A, then B, I believe I will not gen any error messages. Reproducible: always Steps to reproduce: 1. Get a system with gcc-4.9.3 WITHOUT multislot USE flag (or, to be sure, rebuild gcc-4.9.3 to make sure that the current version of ebuild was taken into account). 2. Install gcc-4.7.4 by saying emerge -av sys-devel/gcc:4.7.4 3. Try to rebuild gcc-4.9.3 Expected results: error at step 2 Actual results: error at step 3
Created attachment 434476 [details] Output of emerge -pqv 'sys-devel/gcc:4.9.3'
(In reply to Rostislav Devyatov from comment #0) > I think the problem might be broader, for example, suppose I have two > packages, A and B. A has DEPEND="!B", B has no dependencies. Then if I first > install A, then B, I believe I will not gen any error messages. I think some of the confusion is related to the "!multislot? ( !<sys-devel/gcc-4.9 )" blocker being in DEPEND rather then RDEPEND. This causes the blocker to have no effect unless you are trying to build a version of gcc with this blocker in DEPEND (since DEPEND only matters at build time). @toolchain: Can we get some clarification on the meaning of this blocker? Perhaps it should go in RDEPEND?
portage is WAI -- the gcc blocker is only listed in DEPEND *** This bug has been marked as a duplicate of bug 582504 ***
Excuse me, could you please explain what is WAI? I could not find anything in Gentoo development guide.
(In reply to Rostislav Devyatov from comment #4) Working As Intended