celestia 1.2.5 doesn't compile >celestialbrowserbase.uic.cpp:46: invalid use of undefined type `struct KListView' kde versions tried: 3.0.5a, 3.1 Reproducible: Always Steps to Reproduce: 1.emerge celestia 2. 3. Actual Results: g++ -DHAVE_CONFIG_H -I. -I. -I../../.. -I../.. -I.. -I/usr/qt/3/include -I/usr/kde/3.1/include -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor -Wno-long-long -Wbad-function-cast -Wundef -Wall -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -DNDEBUG -DNO_DEBUG -O2 -march=pentium4 -O3 -pipe -fomit-frame-pointer -fno-exceptions -fno-check-new -O2 -Wall -ffast-math -fexpensive-optimizations -fomit-frame-pointer -c -o celestialbrowserbase.uic.moc.o `test -f 'celestialbrowserbase.uic.moc.cpp' || echo './'`celestialbrowserbase.uic.moc.cpp celestialbrowserbase.uic.cpp: In constructor `CelestialBrowserBase::CelestialBrowserBase(QWidget*, const char*, bool, unsigned int)': celestialbrowserbase.uic.cpp:46: invalid use of undefined type `struct KListView' celestialbrowserbase.uic.h:19: forward declaration of `struct KListView' celestialbrowserbase.uic.cpp:47: invalid use of undefined type `struct KListView' celestialbrowserbase.uic.h:19: forward declaration of `struct KListView' celestialbrowserbase.uic.cpp:48: invalid use of undefined type `struct KListView' celestialbrowserbase.uic.h:19: forward declaration of `struct KListView' celestialbrowserbase.uic.cpp:49: invalid use of undefined type `struct KListView' celestialbrowserbase.uic.h:19: forward declaration of `struct KListView' celestialbrowserbase.uic.cpp:50: invalid use of undefined type `struct KListView' celestialbrowserbase.uic.h:19: forward declaration of `struct KListView' celestialbrowserbase.uic.cpp:51: invalid use of undefined type `struct KListView' celestialbrowserbase.uic.h:19: forward declaration of `struct KListView' celestialbrowserbase.uic.cpp:53: no matching function for call to `QGridLayout ::addMultiCellWidget(KListView*&, int, int, int, int)' /usr/qt/3/include/qlayout.h:326: candidates are: void QGridLayout::addMultiCellWidget(QWidget*, int, int, int, int, int = 0) celestialbrowserbase.uic.cpp:94: no matching function for call to ` CelestialBrowserBase::connect(KListView*&, const char[56], CelestialBrowserBase* const, const char[56])' /usr/qt/3/include/qobject.h:116: candidates are: static bool QObject::connect(const QObject*, const char*, const QObject*, const char*) /usr/qt/3/include/qobject.h:227: bool QObject::connect(const QObject*, const char*, const char*) const celestialbrowserbase.uic.cpp: In member function `virtual void CelestialBrowserBase::languageChange()': celestialbrowserbase.uic.cpp:115: invalid use of undefined type `struct KListView' celestialbrowserbase.uic.h:19: forward declaration of `struct KListView' celestialbrowserbase.uic.cpp:116: invalid use of undefined type `struct KListView' celestialbrowserbase.uic.h:19: forward declaration of `struct KListView' celestialbrowserbase.uic.cpp:117: invalid use of undefined type `struct KListView' celestialbrowserbase.uic.h:19: forward declaration of `struct KListView' celestialbrowserbase.uic.cpp:118: invalid use of undefined type `struct KListView' celestialbrowserbase.uic.h:19: forward declaration of `struct KListView' celestialbrowserbase.uic.cpp:119: invalid use of undefined type `struct KListView' celestialbrowserbase.uic.h:19: forward declaration of `struct KListView' make[5]: *** [celestialbrowserbase.uic.o] Error 1 make[5]: *** Waiting for unfinished jobs.... make[5]: Leaving directory `/var/tmp/portage/celestia-1.2.5/work/celestia-1.2.5/src/celestia/kde' make[4]: *** [all-recursive] Error 1 make[4]: Leaving directory `/var/tmp/portage/celestia-1.2.5/work/celestia-1.2.5/src/celestia/kde' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/var/tmp/portage/celestia-1.2.5/work/celestia-1.2.5/src/celestia' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/celestia-1.2.5/work/celestia-1.2.5/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/celestia-1.2.5/work/celestia-1.2.5' make: *** [all] Error 2 !!! ERROR: app-misc/celestia-1.2.5 failed. !!! Function src_compile, Line 53, Exitcode 2 !!! (no error message) Expected Results: celestia 1.2.5 merged System uname: 2.4.19 i686 Intel(R) Pentium(R) 4 CPU 2.40GHz GENTOO_MIRRORS="http://gentoo.oregonstate.edu/ http://distro.ibiblio.org/pub/Linux/distributions/gentoo" CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" PORTDIR="/usr/portage" DISTDIR="/usr/portage/distfiles" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR_OVERLAY="" USE="oss avi crypt encode gif jpeg libg++ mikmod mmx ncurses nls pdflib png spell truetype xml2 xmms xv zlib gdbm berkdb slang readline arts aalib tcltk java X sdl gpm tcpd pam libwww ssl perl python imlib oggvorbis gtk motif opengl mozilla -acpi -3dnow -apm -esd -svga -gnome directfb gtk2 icc icc-pgo ipv6 matrox tetex x86 cups sse wmf mpeg quicktime qt qtmt kde slp" COMPILER="gcc3" CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer" ACCEPT_KEYWORDS="x86 ~x86" MAKEOPTS="-j2" AUTOCLEAN="yes" SYNC="rsync://rsync.gentoo.org/gentoo-portage" FEATURES="sandbox ccache"
Adding George to cc: since he's prominent in the celestia changelog, so maybe he has comments to add. First of all I can see that the ebuild doesn't even mention qt or kde. (I've never heard of celestia before now, myself.) So this is going to take a little work in adding the missing deps and testing stuff. As for this problem, without trying it myself yet (13MB download over dialup) it looks (at first sight anyway) like a simple one - there are pregenerated .cpp and/or .h files in the tarball, which do not match the installed version of qt. They should just be deleted in src_unpack, and then make will regenerate them correctly to match the installed qt.
Hi guys, Yup, looks like 1.2.5 picked up kde UI, while keeping an old instructions in INSTALL (basically not mentioning it) :(. Ok, I'll try to "fix" this, though I did not have problems while I was testing it originally. Lets just hope it goes with all the necessary .moc files, so that corresponding .cpp's and .h's will get regenerated. I'll get to this shortly.. BTW, doesn't look like I can easily switch kde support off (to make it optional under kde flag). --disable-kde or --without-kde is just ignored and there are no messaged about identifying Qt or kde... But let me do some checks.. Ok, looks like configure *does* take --with-kde, probably meaning that kde support is off by default. Also its output made me suspect that that this is either gtk or kde situation : >+checking whether to disable GTK.... yes Markus: did you try to emerge celestia with --with-kde added? I guess I'll make kdelibs optional dependency on kde USE flag and add --with-kde if "use kde"... Dan, you can assign this to me, if you wish (well, looks like I'll do it shortly anyway ;)) George
*** Bug 13788 has been marked as a duplicate of this bug. ***
An update. Ok, I modified the ebuild as described above, which made it try to install kdeUI if USE contains kde. So now I am able to reproduce the problem. However doesn't look like simple "delete all .cpp and .h" files is going to work (and it doesn't, just tried), as there are no moc files I could find. There is on e .ui file in that dir, but clearly this is not enough. I am afraid Dan I will have to leave this bug to you, as you are the master of kde in gentoo ;), and I don't know more than I already tried in that respect :(. I'll attach the modified ebuild (instead of committing modifications, in order not to tempt our users to try broken stuff :)). George
Created attachment 9552 [details] modified celestia-1.2.5.ebuild The modified celestia-1.2.5.ebuild
The problem was that the celestia configure script doesn't set (or even try to detect) the correct value for kde_widgetdir (which should be $KDEDIR/lib/kde3/plugins/designer). Instead it passes to uic the default value of /usr/lib/kde3/... which of course doesn't exist under gentoo, which doesn't work. So I just exported kde_widgetdir in the ebuild, configure only touches it if it isn't set already, so it works now. (We need to write upsteam about this...) In src_unpack there's a comment that says that gtk support requires gnome. However in DEPEND, gnome-libs is triggered by gnome?, not by gtk?. So one of the two is incorrect. We need to settle on either the gtk or the gnome use flag, there's no reason for two flags. IMO gnme is correct since it actually uses the gnome libs. The remaining problem is that the kde and gnome interfaces are indeed mutually exclusive. It builds a binary called 'celestia' every time. (Note that configure itself prefers gnome over kde - line 14628). However, everything but the binary is installed in different locations: with the kde interface, datafiles go in /usr/share/apps/celestia/, as per the kde standard. With the gnome interface they go in /usr/share/celestia/. I would have liked an ebuild that uses gnome if USE gnome, otherwise kde if USE kde, otherwise gnome by default. However the DEPEND syntax for that doesn't work yet (just asked carpaski on irc). So I've made an ebuild that uses gnome if USE gnome, otherwise use kde (the kde USe flag isn't used at all). I also put a notice in pkg_setup explaining it. Attaching that. What do you think?
Created attachment 9556 [details] Fixed celestia-1.2.5.ebuild
>Markus: did you try to emerge celestia with --with-kde added? >I guess I'll make kdelibs optional dependency on kde USE flag and add --with-kde if >"use kde"... tried: USE="kde" USE="-kde" configure --with-kde : gave the same error tried configure --with-gkt : gave a differrent error!! tried configure {'',--with-kde} make distclean (should remove autogenerated files, should'nt it?) : same errror Markus
Dan Armak: damn cool, man! Markus
Hi Dan Just tested. Looking good to me. Thanks! George
i also get this problem: >>> Unpacking source... >>> Unpacking celestia-1.2.5.tar.gz to /var/tmp/portage/celestia-1.2.5/work >>> Source unpacked. configure: error: unrecognized option: --withou-kde Try `./configure --help' for more information.
Hi John. Thanks for report! Not sure how that got changed or uncought :( (tested out fine few weeks ago..). Fixed this typo. George
since 1.3.0 is out now i tried the fixed ebuild after fixing that typo it works fine i tried both gnome and -gnome use flags
This bug seems to have been fixed.