After a little discussion in bug 425016 [1], I did an experiment.

I created a fresh Gentoo install, set the profile to desktop/kde, and
tried to emerge chromium and kde-meta.
   The immediate response was for portage to suggest setting -u and -N
due to conflicts.

So, I tried emerge -puDNv chromium kde-meta
   That said I needed to enable minizip for zlib and icu for libxml2.

So, I did that via package.use, and tried again.  Now I'm told:
    The following keyword changes are necessary to proceed:
    #required by dev-libs/libxslt-1.1.26-r3, required by x11-libs/libxcb-1.8.1,
    required by x11-libs/xcb-util-0.3.9, required by
x11-libs/xcb-util-image-0.3.9
    =dev-libs/libxml2-2.8.0-r1 ~amd64

    The following USE changes are necessary to proceed:
    #required by net-libs/libsoup-2.36.1-r1, required by
    media-plugins/gst-plugins-soup-0.10.30, required by
    media-libs/phonon-gstreamer-4.5.0[network], required by
    media-libs/phonon-4.5.1-r1[gstreamer], required by kde-base/kdelibs-4.8.3,
    required by kde-base/libkcompactdisc-4.8.3, required by
    kde-base/kdemultimedia-meta-4.8.3, required by
kde-base/kde-meta-4.8.3, required
    by kde-meta (argument)
    >=dev-libs/libxml2-2.8.0-r1 -icu

    emerge: there are no ebuilds built with USE flags to satisfy
    "dev-libs/libxml2:2[!icu?]".
    !!! One of the following packages is required to complete your request:
    - dev-libs/libxml2-2.7.8-r5::gentoo (Change USE: -icu)
    - x11-libs/qt-webkit-4.8.2::gentoo (Change USE: +icu)

Now, a few interesting things here:
1.  On my regular kde desktop I don't have an unstable version of
libxml2 - I'm not sure why I haven't gotten any complaints about that,
but I'm being told to unmask it in this case.
2.  The first suggestion with libxml2 is to remove the icu flag, which
the previous step told me to add.
3.  The very last line does get at what needs to be done here - enable
+icu on qt-webkit.

If I enable icu on qt-webkit only then it looks like it should work -
it no longer asks to unmask libxml2 or unset the icu use flag.

I realize that figuring out the right thing to do here isn't at all a
trivial matter.  However, this seems like a fairly convoluted thing
for a new user who wants to run KDE and Chromium to go through.  Those
are both VERY mainstream packages.  Is there any way to improve the
portage logic to give better suggestions in this case, or some way to
otherwise point new users in the right direction?

Please note that I don't mean to pick on either qt or chromium
maintainers here - they've all done what seems most logical from the
standpoint of their own packages.  However, it seems like the
combination is not going to be nice on new users.

It also seems like the current portage output is giving the user some
contradictory and counterproductive advice.  It seems like there are
really only two possible choices
1.  The user could choose to not install chromium.
2.  The user could enable icu for qt-webkit.

Doing anything else is just going to lead to some kind of cycle of
errors until the user figures it out.  Then they have to clear out
who-knows-what from /etc/portage as they blindly followed
instructions.

Is there any way for portage to figure out that one of those is the
eventual outcome, and then direct the user to the minimal changes to
accomplish either?

Rich

1 - https://bugs.gentoo.org/show_bug.cgi?id=425016

Reply via email to