Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 587072 - sys-apps/portage: =gnome-extra/cinnamon-control-center-3.0.1 forcing systemd installation on non-systemd system (emerge does not backtrack after || deps trigger blockers)
Summary: sys-apps/portage: =gnome-extra/cinnamon-control-center-3.0.1 forcing systemd ...
Status: RESOLVED DUPLICATE of bug 469648
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-06-25 19:05 UTC by Oleh
Modified: 2016-07-09 18:34 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Oleh 2016-06-25 19:05:27 UTC
I have a test box with cinnamon installed, now with update to 3.0.1 i getting forced installation of sys-apps/systemd
in 3.0.1 ebuild:

RDEPEND="${COMMON_DEPEND}
	|| ( >=sys-apps/systemd-31 ( app-admin/openrc-settingsd sys-auth/consolekit ) )

in 2.8.1 ebuild:

RDEPEND="${COMMON_DEPEND}
	|| ( ( app-admin/openrc-settingsd sys-auth/consolekit ) >=sys-apps/systemd-31 )

so, newer ebuild have this in reverse order. I do have consolekit installed, so this alternate dep should be satisfied. If i remove openrc-settingsd form list of deps and leave:

|| ( >=sys-apps/systemd-31 sys-auth/consolekit ) 

i getting clean update.


Reproducible: Always

Actual Results:  
[ebuild  N     ] gnome-extra/cinnamon-control-center-3.0.1::gentoo  USE="colord cups -debug" INPUT_DEVICES="-wacom" 0 KiB
[ebuild  N     ] dev-libs/gmime-2.6.20-r1:2.6::gentoo  USE="-doc -mono -static-libs -vala" 0 KiB
[ebuild  N     ] dev-libs/totem-pl-parser-3.10.5:0/18::gentoo  USE="crypt introspection quvi -archive {-test}" 0 KiB
[ebuild  N     ] media-libs/grilo-0.2.12:0.2/1::gentoo  USE="gtk introspection network playlist -examples {-test} -vala" 0 KiB
[ebuild  N     ] gnome-base/gnome-control-center-3.16.3:2::gentoo  USE="bluetooth colord cups gnome-online-accounts i18n networkmanager v4l -debug -kerberos -wayland" INPUT_DEVICES="-wacom" 0 KiB
[ebuild  N     ] gnome-extra/cinnamon-3.0.6::gentoo  USE="networkmanager nls" PYTHON_TARGETS="python2_7 python3_4 -python3_3 -python3_5" 0 KiB
[blocks B      ] sys-apps/gentoo-systemd-integration ("sys-apps/gentoo-systemd-integration" is blocking sys-fs/eudev-3.1.5)
[blocks B      ] sys-fs/eudev ("sys-fs/eudev" is blocking sys-apps/systemd-230-r2, sys-apps/gentoo-systemd-integration-6)
[blocks B      ] sys-apps/systemd ("sys-apps/systemd" is blocking sys-fs/eudev-3.1.5)

Total: 87 packages (84 new, 2 in new slots, 1 reinstall, 1 uninstall), Size of downloads: 4,421 KiB
Conflict: 5 blocks (3 unsatisfied)

 * Error: The above package list contains packages which cannot be
 * installed at the same time on the same system.

  (sys-apps/systemd-230-r2:0/2::gentoo, ebuild scheduled for merge) pulled in by
    >=sys-apps/systemd-207 required by (sys-apps/gentoo-systemd-integration-6:0/0::gentoo, ebuild scheduled for merge)
    >=sys-apps/systemd-31 required by (gnome-base/gnome-control-center-3.16.3:2/2::gentoo, ebuild scheduled for merge)
    sys-apps/systemd:0= required by (sys-apps/dbus-1.10.8-r1:0/0::gentoo, ebuild scheduled for merge)
    >=sys-apps/systemd-31 required by (gnome-extra/cinnamon-control-center-3.0.1:0/0::gentoo, ebuild scheduled for merge)

  (sys-fs/eudev-3.1.5:0/0::gentoo, installed) pulled in by
    >=sys-fs/eudev-1.3:0/0[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?,static-libs?] (>=sys-fs/eudev-1.3:0/0[abi_x86_32(-),abi_x86_64(-),static-libs]) required by (virtual/libudev-215-r1:0/1::gentoo, installed)
    >=sys-fs/eudev-2.1.1 required by (virtual/udev-217:0/0::gentoo, installed)


For more information about Blocked Packages, please refer to the following
section of the Gentoo Linux x86 Handbook (architecture is irrelevant):

https://wiki.gentoo.org/wiki/Handbook:X86/Working/Portage#Blocked_packages


The following USE changes are necessary to proceed:
 (see "package.use" in the portage(5) man page for more details)
# required by sys-apps/systemd-230-r2::gentoo
# required by sys-apps/gentoo-systemd-integration-6::gentoo
>=sys-apps/dbus-1.10.8-r1 systemd

Would you like to add these changes to your config files? [Yes/No]
Comment 1 Oleh 2016-06-25 19:17:34 UTC
and if i manually install openrc-settingsd before, i getting clean update aswell, so it's like portage does not accept:
|| ( A ( B C ) )

this happens with portage-2.2.26-2.3.0 (all)
Comment 2 Oleh 2016-06-25 19:26:48 UTC
C would consolekit, B openrc-settingsd, A systemd
Comment 3 Oleh 2016-06-25 19:35:28 UTC
ok, this seems dealing with prefering left dep to right. This aint any good, id' say. if i want to migrate to systemd i don't need consolekit, obviously. And obviously, id like portage to prefer consolekit (if installed) in opposite case.
Comment 4 Oleh 2016-06-25 19:50:35 UTC
proposal to revert deps back as in 2.8.1 ebuild. Rationale:
openrc users will be still statified.
systemd users will never hit this blocks aswell, due to portage satisfied with right side dep.
Something to improve in portage resolving.
Comment 5 Pacho Ramos gentoo-dev 2016-06-27 11:24:55 UTC
Personally I would opt for using a "systemd" USE flag for pulling either one option or the other and not relying on portage trying to find the right option by itself... but I will see if they know about what could be happening here as ending up with a block looks like the worst option
Comment 6 Zac Medico gentoo-dev 2016-06-27 16:45:40 UTC
(In reply to Pacho Ramos from comment #5)
> Personally I would opt for using a "systemd" USE flag for pulling either one
> option or the other and not relying on portage trying to find the right
> option by itself...

Yes, that would be a very good way to go. Generally, I recommend that USE conditionals are used instead of || deps whenever possible, since it prevents the dependency resolver from having to make choices that the user or profile could easily make via USE flag settings.

(In reply to Oleg from comment #0)
> I have a test box with cinnamon installed, now with update to 3.0.1 i
> getting forced installation of sys-apps/systemd
> in 3.0.1 ebuild:
> 
> RDEPEND="${COMMON_DEPEND}
> 	|| ( >=sys-apps/systemd-31 ( app-admin/openrc-settingsd sys-auth/consolekit
> ) )
> 
> in 2.8.1 ebuild:
> 
> RDEPEND="${COMMON_DEPEND}
> 	|| ( ( app-admin/openrc-settingsd sys-auth/consolekit )
> >=sys-apps/systemd-31 )
> 
> so, newer ebuild have this in reverse order. I do have consolekit installed,
> so this alternate dep should be satisfied. If i remove openrc-settingsd form
> list of deps and leave:
> 
> || ( >=sys-apps/systemd-31 sys-auth/consolekit ) 

Okay, so that suggests that portage is having trouble satisfying the openrc-settingsd dependency. If openrc-settingsd was masked, then that could trigger the problem. Please use this command to verify that it's not masked:

    emerge -pv --nodeps app-admin/openrc-settingsd

You should verify that your version of sys-apps/portage has this patch for bug 567686:

https://gitweb.gentoo.org/proj/portage.git/commit/?id=7cbd04cd62c8f13ed41e07ff8bc9b7e5d5ac700b
Comment 7 Oleh 2016-06-27 18:06:52 UTC
this patch is included in versions i tried. openrc-settingsd is not masked.

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

[ebuild  N     ] app-admin/openrc-settingsd-1.0.1::gentoo  USE="-systemd" 0 KiB

Total: 1 package (1 new), Size of downloads: 0 KiB

 * IMPORTANT: 3 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.

As in comment before, i'm able manually install openrc-settingsd, then unmodified cinnamon-control-center ebuild resolved and getting no systemd block. If i let (without touching anything)  portage update ebuild, then i getting block. If I modify ebuild and remove openrc-settingsd, and leave only || systemd consolekit, then i have clean update aswell, because consolekit already installed on my box.
Comment 8 Zac Medico gentoo-dev 2016-06-27 18:26:46 UTC
(In reply to Oleg from comment #0)
> I have a test box with cinnamon installed, now with update to 3.0.1 i
> getting forced installation of sys-apps/systemd
> in 3.0.1 ebuild:
> 
> RDEPEND="${COMMON_DEPEND}
> 	|| ( >=sys-apps/systemd-31 ( app-admin/openrc-settingsd sys-auth/consolekit
> ) )

I think what happens is that the dep_zapdeps function sees the systemd choice on the left and prefers that because it's on the left which implies that it's preferred. I don't think we can change the default behavior there without breaking other stuff. However, we could have it backtrack after it sees that the one on the left triggers blockers.
Comment 9 Zac Medico gentoo-dev 2016-06-28 17:15:52 UTC
(In reply to Zac Medico from comment #6)
> Generally, I recommend that USE
> conditionals are used instead of || deps whenever possible, since it
> prevents the dependency resolver from having to make choices that the user
> or profile could easily make via USE flag settings.

Also, there's package.mask. Users should be able to easily work around this problem by putting sys-apps/systemd in /etc/portage/package.mask. It could also be done at the profile level.

Note that GLEP 37 describes a package.prefer which has never been implemented:

https://wiki.gentoo.org/wiki/GLEP:37#Overrides
Comment 10 Pacho Ramos gentoo-dev 2016-07-09 12:30:30 UTC
[master 5bc1e9d] gnome-extra/cinnamon-control-center: Use systemd USE flag to ensure the right deps are pulled in each different scenario
 1 file changed, 3 insertions(+), 2 deletions(-)

I leave to portage people this to let them decide if they want to change something in portage or not finally :/
Comment 11 Zac Medico gentoo-dev 2016-07-09 18:34:24 UTC
(In reply to Pacho Ramos from comment #10)
> I leave to portage people this to let them decide if they want to change
> something in portage or not finally :/

As mentioned in comment #8, emerge will have to account for blockers in order to make correct choices, which makes this a special case of bug 469648.

*** This bug has been marked as a duplicate of bug 469648 ***