| View previous topic :: View next topic |
| Author |
Message |
pingoo Apprentice


Joined: 11 Jul 2006 Posts: 290
|
Posted: Sat Apr 14, 2012 8:58 pm Post subject: emerging kde: dependencies |
|
|
Trying to install some kde package, It appears the message below:
| Code: | emerge: there are no ebuilds built with USE flags to satisfy ">=x11-libs/qt-core-4.7.4:4[qt3support,ssl]".
!!! One of the following packages is required to complete your request:
- x11-libs/qt-core-4.7.4-r1::gentoo (Change USE: +qt3support)
(dependency required by "kde-base/kdebase-startkde-4.8.1" [ebuild])
(dependency required by "kdebase-startkde" [argument])
|
First, there's a way to see the dependency of a package? I mean, I look inside the package but I didn't understand who was asking for qt3support. Only after some improper use of grep I found that every kde package was asking for it in /usr/portage/metadata/cache/ ...
Does anyone know if qt3support it's really mandatory? And what about the accessibility use, why it's mandatory? |
|
| Back to top |
|
 |
Veldrin Veteran


Joined: 27 Jul 2004 Posts: 1931 Location: Zurich, Switzerland
|
Posted: Sat Apr 14, 2012 9:15 pm Post subject: |
|
|
most kde4 dependencies are handled via the kde4-base.eclass. (/usr/portage/metadata/cache just expands the ebuilds)
To simplify your search, just add qt3support to USE in /etc/make.conf. (alternatively you can add that useflag to each and every qt-* package you are using in /etcportage/package.use)
Why exactly this is (still) needed, I am unsure, but it works fine that way.
V. _________________ read the portage output!
If my answer is too short, just ask for an explanation. |
|
| Back to top |
|
 |
pingoo Apprentice


Joined: 11 Jul 2006 Posts: 290
|
Posted: Sun Apr 15, 2012 9:35 am Post subject: |
|
|
Ok, thank you, so I need to see the ebuild e.g. in /usr/portage/kde-base/* and check the file in /usr/portage/metadata/cache for understand where a USE is required for a required package.
There's a way to change this, e.g. how can I try to compile kde without set accessibilty and qt3support for qt*?
| Code: | in /usr/portage/metadata/cache/kde-base/kdelibs-4.8.1-r2:
[...] >=x11-libs/qt-core-4.7.4:4[qt3support,ssl] >=x11-libs/qt-gui-4.7.4:4[accessibility,dbus] [...]
|
|
|
| Back to top |
|
 |
i92guboj Moderator


Joined: 30 Nov 2004 Posts: 9464 Location: Córdoba (Spain)
|
Posted: Sun Apr 15, 2012 10:21 am Post subject: |
|
|
| pingoo wrote: | | Ok, thank you, so I need to see the ebuild e.g. in /usr/portage/kde-base/* and check the file in /usr/portage/metadata/cache for understand where a USE is required for a required package. |
Nah, you need to look at the ebuild AND the involved eclasses. Those will be different for each package, and you can infer them by reading the "inherit" clause at the top of the ebuild. Eclass files live in $PORTDIR/eclass if my memory serves correctly. Note that eclasses may, in turn, inherit from other eclasses.
| Quote: | | There's a way to change this, e.g. how can I try to compile kde without set accessibilty and qt3support for qt*? |
Not, unless you are willing to hack the source to remove the dependency yourself (luck with that, kde is not precisely a small ground to hack into).
When kde 4.x came out, everything had to be ported from qt3 to qt4, and that was a long and complex process. So it was that a middle layer was invented to allow easy porting. This intended to be a temporal solution that allowed the big source code base tied to kde3 and qt3 to work on modern qt4-based systems. The problem is that not everything has been ported still. I think that k3b still relies on this, but there might be some more pieces of code, even into the kde code base, that rely on qt3support.
Interpreting the dependency tree is often not trivial when kde is involved, but you can add -tv to the parameters of emerge, seeing it in a tree-like fashion may help you with that.
Maybe you will be able to disable the accesibility flag if you investigate (I think I have it disabled, but can't check right now). But, as for qt3support goes, I doubt you can do anything. The only "solutions" are:
- discover which package is pulling it, and live without it, find an alternative.
- discover which package is pulling it, fully port it to qt4, then you won't need qt3support.
_________________ Gentoo Handbook | My website |
|
| Back to top |
|
 |
pingoo Apprentice


Joined: 11 Jul 2006 Posts: 290
|
Posted: Sun Apr 15, 2012 1:22 pm Post subject: |
|
|
Thank you, now it's more clear.
Your memory works well I looked in the eclass and found:
| Code: | $ less /usr/portage/eclass/kde4-base.eclass
[...]
# KDE dependencies
# Qt accessibility classes are needed in various places, bug 325461
kdecommondepend="
dev-lang/perl
>=x11-libs/qt-core-${QT_MINIMAL}:4[qt3support,ssl]
>=x11-libs/qt-gui-${QT_MINIMAL}:4[accessibility,dbus]
>=x11-libs/qt-qt3support-${QT_MINIMAL}:4[accessibility]
|
I've already made some searches for the qt3support question and appears that only aseigo was working actively on removing that dependence, on kdelibs, if my memory works like your
I watched the bug but I didn't understand why accessibiliy was turned on by default in kde4-base.eclass. I think I'm going to change the eclass and try
EDIT: ok, I tried changing the eclass removing first both qt3support and accessibility and after removing only accessibility but compilation failed ...
| Code: |
/var/tmp/portage/kde-base/kdelibs-4.8.1-r2/work/kdelibs-4.8.1/kdeui/widgets/kcapacitybar.cpp:96:27: error: 'setAccessibleName' was not declared in this scope
|
... so at least accessibilty it's necessary  |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|