Re: Error compiling kdebase 4.3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Juan Pablo Romero Méndez posted on Mon, 10 Aug 2009 22:06:36 -0500 asexcerpted:
> I'm compiling kdebase from kde 4.3. This error appears: ...> /home/jpablo/kde43/sources/trunk/KDE/kdebase/apps/plasma/applets/> folderview/folderview.cpp:1141:> error: invalid use of incomplete type ‘struct KWindowListMenu’...
> It seems some library is missing, but which?> > My system:> opensuse 11.1> gcc 4.3.2> qt 4.5.1
Hi,
I saw the post a couple days ago, and there's a guy here with a sig "Linux (Almost) from Scratch", that I thought could answer better than I.  He doesn't seem to have done so, and now you're asking again, so I'll try to answer this time.
FWIW, I run Gentoo, which is generally entirely from source, so I compile everything.  However, it's the ebuild scripts that contain all the dependency information, etc, so as long as they've gotten the ebuilds right, we don't normally have to worry about dependencies and the like. Also, Gentoo splits the big monolithic KDE packages (kdelibs as one big package, kdebase as another, etc) up into little ones, each of which extracts only the bits of the tarballed sources it needs, with dependencies setup on the other bits of the split package as necessary.  Thus, it's not like we compile one huge kdebase package here, but rather, a bunch of little pieces of it. That's why I thought the from-scratch guy was more likely to be of direct help than I could be.  However, maybe I'll be able be of some help.  We'll see.
First, let's see what (Gentoo split) package that belongs to (-f is full regex filename search, so anything with "folderview" in the filename):
$ equery belongs -f folderview * Searching for folderview ...kde-base/plasma-apps-4.3.0 (/usr/share/kde4/services/plasma-applet-folderview.desktop)kde-base/plasma-apps-4.3.0 (/usr/lib64/kde4/plasma_applet_folderview.so)
So, it looks like the plasma-apps package.  Makes sense.  That also tells me that it's a library and where it's located (on Gentoo/~amd64 at least) after installation.
OK, now let's try readelf.  Note that I use (among other LDFLAGS)--as-needed, so this shouldn't include the "noise" in the form of unused but marked as needed libraries that a lot of readelf listings would include.  Readelf output fed to grep and cut to strip away the unnecessary info:
$ readelf --dynamic /usr/lib64/kde4/plasma_applet_folderview.so | \grep NEEDED | cut --delimiter=[ --fields=2 | cut --delimiter=] --fields=1
libplasma.so.3libkonq.so.5libkworkspace.so.4libkio.so.5libkfile.so.4libsolid.so.4libX11.so.6libkdeui.so.5libkdecore.so.5libQtDBus.so.4libQtCore.so.4libQtGui.so.4libstdc++.so.6libm.so.6libc.so.6
OK, so those are the directly required dependencies as it was compiled here.  Note that some of those may be in earlier bits of kdebase, or in kdelibs, if you're compiling the monolithic packages, not split packages as Gentoo arranges.
OK, now feed that list into equery belongs (piped to cut and then to sort --unique):
$ equery b $(readelf --dynamic \/usr/lib64/kde4/plasma_applet_folderview.so | \grep NEEDED | cut --delimiter=[ --fields=2 | \cut --delimiter=] --fields=1) | cut --fields=1 | sort --unique
kde-base/kdelibs-4.3.0kde-base/libkonq-4.3.0kde-base/libkworkspace-4.3.0sys-devel/gcc-4.4.1sys-libs/glibc-2.10.1x11-libs/libX11-1.2.2x11-libs/qt-core-4.5.2x11-libs/qt-dbus-4.5.2x11-libs/qt-gui-4.5.2-r2
So it's those (Gentoo) packages that contain the libraries listed above.  Note that on Gentoo, qt4 is split as well.  All those qt packages are therefore simply parts of qt4, with the dependency filled if you have it.
Of course, on a binary distribution, not only will you need the binary packages, but for compiling, probably the -devel packages as well.
For the kde packages (besides kdelibs):$ grep KMNAME /p/kde-base/libkonq/libkonq-4.3.0.ebuildKMNAME="kdebase-apps"$ grep KMNAME /p/kde-base/libkworkspace/libkworkspace-4.3.0.ebuildKMNAME="kdebase-workspace"
So the kde monolithic dependencies would be in the kdelibs, kdebase-apps, and kdebase-workspace tarballs (the kdebase-* tarballs probably being part of the same kdebase compile).  Of course, it also needs glibc, as a c++ app, it needs the libstdc++ from whatever gcc you're running, and as an X app, it needs libX11.
Hopefully you can pull what you need out of something in there.
-- Duncan - List replies preferred.   No HTML msgs."Every nonfree program has a lord, a master --and if you use the program, he is your master."  Richard Stallman
___________________________________________________This message is from the kde mailing list.Account management:  https://mail.kde.org/mailman/listinfo/kde.Archives: http://lists.kde.org/.More info: http://www.kde.org/faq.html.


[Index of Archives]     [Trinity (TDE) Desktop Users]     [Fedora KDE]     [Fedora Desktop]     [Linux Kernel]     [Gimp]     [GIMP for Windows]     [Gnome]     [Yosemite Hiking]
  Powered by Linux