When using openrc, as soon as one emerges lvm2, it tries to downgrade to baselayout-1. This is due to the RDEPEND containing "|| ( =sys-apps/baselayout-1* >=sys-apps/openrc-0.4)". This evaluates from left to right, and as baselayout is a dependency of openrc, the left side is always evaluated first and thusly baselayout-1 added as a dependency instead of adding openrc. The fix is to change the line to "|| ( >=sys-apps/openrc-0.4 =sys-apps/baselayout-1*)" Reproducible: Always Steps to Reproduce: 1.install openrc 2.emerge lvm2 3.observe baselayout being downgraded Actual Results: [ebuild UD] sys-apps/baselayout-1.12.11.1 [2.0.1] USE="unicode%* -bootstrap% -build -static%" 0 kB [?=>0] [ebuild N ] sys-fs/device-mapper-1.02.24-r1 USE="(-selinux)" 0 kB [0] [ebuild U] sys-fs/lvm2-2.02.36 [2.02.45-r2] USE="lvm1 readline static (-clvm) (-cman) (-selinux)" 0 kB [?=>0] Expected Results: Calculating dependencies... done! [ebuild N ] sys-fs/device-mapper-1.02.24-r1 USE="(-selinux)" 0 kB [0] [ebuild U] sys-fs/lvm2-2.02.36 [2.02.45-r2] USE="lvm1 readline static (-clvm) (-cman) (-selinux)" 0 kB [?=>0]
Try it on baselayout1, and it tries to get them to upgrade too much :-( iirc.
Does lvm2 has a real dependency on baselayout or openrc? I think this is not needed. Maybe equivalent to the depend but not forcing up or downgrades is a soft blocker against "<sys-apps/openrc-0.4".
Current (all in RDEPEND): "|| ( =sys-apps/baselayout-1* >=sys-apps/openrc-0.4 )" Options: 1. "!<sys-apps/openrc-0.4" 2. "|| ( =sys-apps/baselayout-1* ( =sys-apps/baselayout-2* >=sys-apps/openrc-0.4 ))" If you have openrc-0.[23]*, you MUST upgrade openrc for LVM to work. I'm not sure that a soft-blocker would do so. Portage/zmedico: which would be better?
It seems like the !<sys-apps/openrc-0.4 blocker should work, and it has the advantage of being simpler than the other approaches.
Fixed in CVS with zmedico's suggestion.