Summary: | x11-libs/qt-webkit should not always require dev-libs/icu | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Alec Meyers <alecm_88> |
Component: | [OLD] Library | Assignee: | Qt Bug Alias <qt> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | alecm_88, daniele.segato, dschridde+gentoobugs |
Priority: | Low | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Alec Meyers
2012-04-07 00:02:31 UTC
Now that qt-webkit-4.8.1 is EAPI 4, we can add USE=icu and REQUIRED_USE="gstreamer? ( icu )". Alternatively, we can block libxml2[icu] if USE=gstreamer is enabled. I prefer the first solution. For me, it doesn't matter since I don't use gstreamer. But the the first seems better to me too, since icu is a build-time option, and blocking can cause people pain (in case they need libxml[icu]) But, it I understand the problem correctly, the problem is mismatching icu support in qt-webkit and libxml2, right? Since gstreamer depends on libxml, could you do something like: gstreamer? ( dev-libs/libxml2[=icu] ) so that you can have either both with icu or both without icu? That would help people who use gstreamer to get away without icu. (In reply to comment #2) > Since gstreamer depends on libxml, could you do something like: > > gstreamer? ( dev-libs/libxml2[=icu] ) > > so that you can have either both with icu or both without icu? That would > help people who use gstreamer to get away without icu. No, that would be incorrect, because qt-webkit does _not_ depend on libxml2. That's why I suggested a blocker instead of a dependency. But if it depends on gstreamer, and gstreamer depends on libxml2, you have libxml2 installed either way. (And if gstreamer didn't depend on libxml2, then there wouldn't be a problem, right?) Maybe there's some rule about it, but from a practical standpoint, I don't see a way this could cause any undesired side-effect. And again, for me personally, it does not matter as long as icu is not pulled in if I don't use gstreamer :) Indirect dependencies are irrelevant. DEPEND and RDEPEND should list only _direct_ dependencies, the transitive closure is then automatically computed by the package manager. Hypothetically, if gstreamer removed its libxml2 dependency, you would be able to build qt-webkit without having libxml2 installed. Thus adding the dependency would be wrong. If the libxml2 dependency were removed you could also build qt-webkit with or without icu, since libxml2's header will not get pulled in through gstreamer's, and there won't be a conflicting declaration. But I don't intend to argue - just giving ideas. If you choose either of the solutions in Comment 1, I'll be perfectly satisfied too :) (In reply to comment #1) > Now that qt-webkit-4.8.1 is EAPI 4, we can add USE=icu and > REQUIRED_USE="gstreamer? ( icu )". > This is now implemented. Closing. Thanks a lot, Davide! (In reply to comment #3) > (In reply to comment #2) > > Since gstreamer depends on libxml, could you do something like: > > > > gstreamer? ( dev-libs/libxml2[=icu] ) > > > > so that you can have either both with icu or both without icu? That would > > help people who use gstreamer to get away without icu. > > No, that would be incorrect, because qt-webkit does _not_ depend on libxml2. > That's why I suggested a blocker instead of a dependency. Yes, but libxml2 with the icu USE flag is what breaks qt-webkit. I don't like the solution at all, especially since the goal of many is to keep icu OFF OF THE SYSTEM. I don't expect my gripe to change anything, especially since gentoo makes it relatively easy to overcome poor decisions such as this, which means I now have another package in /usr/local/portage. But for anyone else who comes across this bug and wants an alternative solution, I recommend (I believe this is more correct logic than that offered in comment 2) changing the lines (really only adding the dev-libs/libxml2 line and commenting out the REQUIRED_USE="gstreamer? ( icu )" line) in the qt-webkit ebuild to: gstreamer? ( dev-libs/glib:2 media-libs/gstreamer:0.10 media-libs/gst-plugins-base:0.10 dev-libs/libxml2[!icu?] ) Even though I dont like your attitude, lets reopen this bug for further examination REQUIRED_USE is gone from qt-webkit-4.8.9999 (in qt overlay). In its place I added a blocker on libxml2[icu] when icu USE flag is disabled. This change will be applied to the tree on the next version bump (4.8.2), due tomorrow. Fixed (again) in qt-webkit-4.8.2 It's been a while now I'm having pain upgrading my system about this icu, libxml2 and qt-webkit. I didn't even heard about icu before that causing me issue with upgrading the system. This time again, because qt-webkit-3.8.2 is blocking libxml2 which is required by lot of other packages.... Can someone nicely explain me what's going on? why libxml2 cause issues to qt-webkit, is blocking really the only option? no intention of bothering here, I really just want to understand thanks. (In reply to comment #13) > This time again, because qt-webkit-3.8.2 is blocking libxml2 which is > required by lot of other packages.... > No, qt-webkit blocks libxml2[icu] only, i.e. libxml2 compiled with "icu" USE flag *enabled*. To solve the blocker, you just have to emerge libxml2 with USE="-icu". > Can someone nicely explain me what's going on? > > why libxml2 cause issues to qt-webkit, is blocking really the only option? > no intention of bothering here, I really just want to understand > Please see bug 407315 for the reason behind the blocker. That "simple" thing is not possible for me because chromium require libxml2[icu] as dependency and chromium is used by lot of peoples so I wonder, is there any other way but blocking it? Your other option is building qt-webkit with icu support :) (In reply to comment #15) > That "simple" thing is not possible for me because chromium require > libxml2[icu] as dependency > > and chromium is used by lot of peoples > > so I wonder, is there any other way but blocking it? As I said, have a look at bug 407315: qt-webkit[gstreamer,-icu] *will* fail to build against libxml2[icu]. There's nothing we can do about it. Complain upstream. If you need libxml2[icu] for chromium, other possible workarounds are: 1) enable icu USE flag for qt-webkit (as suggested by Alec) 2) disable gstreamer USE flag for qt-webkit (but you'll lose HTML5 audio/video support) Your choice. Building qt-webkit with icu support is perfectly fine to me, thanks |