I'm getting the following bug when emerge valknut.
OS: Gentoo 2006.0
GCC: 3.4.4
dceditserver.cpp: In member function `void DCEditServer::SetProfile(DCConfigHubProfile*)':
dceditserver.cpp:78: error: 'class DCConfigHubProfile' has no member named 'm_bExtHubCount'
dceditserver.cpp: In member function `void DCEditServer::GetProfile(DCConfigHubProfile*)':
dceditserver.cpp:97: error: 'class DCConfigHubProfile' has no member named 'm_bExtHubCount'
make[3]: *** [dceditserver.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory `/var/tmp/portage/net-p2p/valknut-0.3.8/work/valknut-0.3.8/valknut'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/var/tmp/portage/net-p2p/valknut-0.3.8/work/valknut-0.3.8/valknut'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/net-p2p/valknut-0.3.8/work/valknut-0.3.8'
make: *** [all] Error 2
!!! ERROR: net-p2p/valknut-0.3.8 failed.
Call stack:
ebuild.sh, line 1611: Called dyn_compile
ebuild.sh, line 968: Called qa_call 'src_compile'
environment, line 3188: Called src_compile
valknut-0.3.8.ebuild, line 27: Called die
!!! emake failed
!!! If you need support, post the topmost build error, and the call stack if relevant.
!!! A complete build log is located at '/var/tmp/portage/net-p2p/valknut-0.3.8/temp/build.log'.
build.log
Logged In: NO
Any idea?
Logged In: YES
user_id=1639740
Originator: NO
This compile error I recognise is due to attempting to build valknut 0.3.8 against dclib 0.3.7, which will not work. You need to compile and install dclib 0.3.8 first.
Logged In: NO
Dclib 0.3.8 was the first, because i typed emerge valknut. And dclib is installed, but valknut not!
Logged In: YES
user_id=1639740
Originator: NO
Can you post the output of "locate cdcproto.h" to check you only have one set of headers from dclib installed, and that there are no conflicting files installed in locations such as /usr/local/include ?
Logged In: NO
/usr/local/include/verlihub/cdcproto.h
/usr/include/dclib/cdcproto.h
I have an another headerfile, but in another directory. So there shouldn't conflict. Is it true?
Logged In: YES
user_id=1639740
Originator: NO
Yes it looks like you only have one set of dclib headers installed which is good. Can you make sure they are from dclib 0.3.8 by doing "grep m_bExtHubCount /usr/include/dclib/cconfig.h". You should get some lines of output:
m_bExtHubCount = TRUE;
m_bExtHubCount = p->m_bExtHubCount;
bool m_bExtHubCount;
If you get no output, that means the headers are from dclib 0.3.7 and you need to remove them and get 0.3.8 installed. Post the build.log from dclib if you still have problems.
Logged In: NO
localhost usr # grep m_bExtHubCount /usr/include/dclib/cconfig.h
m_bExtHubCount = TRUE;
m_bExtHubCount = p->m_bExtHubCount;
bool m_bExtHubCount;
It's OK, and in valknut's build.log has "--with-libdc=/usr" so it's ok too. Here is dclib's build.log. http://linux-vip.sytes.net/others/build.log
Logged In: YES
user_id=1639740
Originator: NO
OK, I really don't know what the problem here is.
Can you try following the compile instructions at
http://www.dcs.warwick.ac.uk/~csucda/valknut.html
to install valknut into ~/valknut-root/
If that works, then it would indicate the problem is somewhere in the gentoo ebuilds and not with dclib/valknut itself.
Logged In: NO
I hear, that if gcc is under 4.0, than can't compile valknut 0.3.8. Isn't is true?
Logged In: YES
user_id=1639740
Originator: NO
No, I can compile valknut 0.3.8 fine on RedHat Enterprise Linux 4 with gcc 3.4.5
Logged In: NO
I also use gentoo and compiling and running valknut just works fine for me
my config is:
gcc 4.1.1
dclib 3.8
Valknut 3.8.1
on amd64
maybe try
echo "net-p2p/valknut ~amd64" >> /etc/portage/package.keywords
echo "net-p2p/dclib ~amd64" >> /etc/portage/package.keywords
emerge --unmerge valknut dclib
emerge -av --deep valknut
although you'll have to replace the amd64 with your system i.e. x86
check the version number of both packages again before compiling.
you can never be too careful ;)
also you'll most likely will have probs with connections to apex dc++.
you still have to install the dclib patch on
http://www.dcs.warwick.ac.uk/~csucda/patches/dclib-0.3.8-bugfix-apexdc-compat.patch
by hand
if this doesn't work try a revdep-rebuild
Cheers
Logged In: YES
user_id=1549895
Originator: NO
Hi; I just tried to compile it on my Gentoo box; I have the same error.
Tested with:
dclib 3.8
Gcc 4.1.1
Gcc 3.4.6
moves the include of dclib/cconfig.h
Logged In: YES
user_id=1639740
Originator: NO
Unfortunately I still don't really know what is causing this problem, nor why it affects some people but not others.
Does the newly attached patch help at all? (Apply with "patch -p1 < file.patch" to valknut 0.3.8.1)
File Added: valknut-0.3.8.1-dceditserver-rearrange-headers.patch
Logged In: YES
user_id=1549895
Originator: NO
Sorry; I fixed that error, it was beacuse it gets the old dclib I have installed instead the one in valknut-root ;) Now I got another problem:
usr/lib/libSM.so /usr/lib/libICE.so -lpthread -lssl -lcrypto -lbz2
dcconfig.o: In function `DCConfig::SaveDCGui()':
dcconfig.cpp:(.text+0x547d): undefined reference to `CConfig::SaveConfigXmlViaTemp(CString, _xmlDoc*)'
dcconfig.o: In function `DCConfig::SaveDCFriendList(CStringList*)':
dcconfig.cpp:(.text+0xa5c9): undefined reference to `CConfig::SaveConfigXmlViaTemp(CString, _xmlDoc*)'
dcconfig.o: In function `DCConfig::SaveDCHubFilter(CStringList*)':
dcconfig.cpp:(.text+0xafd3): undefined reference to `CConfig::SaveConfigXmlViaTemp(CString, _xmlDoc*)'
collect2: ld returned 1 exit status
make[3]: *** [valknut] Error 1
Thk :)
Logged In: YES
user_id=1639740
Originator: NO
Can you make sure you are linking against the correct libdc.so/.a, by renaming/deleting any old versions?
I've seen this problem before and not managed to fix it. It seems odd that both this and the m_bExtHubCount occur when I've filled in the doxygen comment. There may be some misplaced { or } or ; somewhere in cconfig.h/.cpp that I just cannot see.
Logged In: NO
Yea; I checked it and its ok :)
Logged In: YES
user_id=1639740
Originator: NO
netcelli: this patch:
http://sourceforge.net/tracker/index.php?func=detail&aid=1703042&group_id=181579&atid=897769
may fix the "CConfig::SaveConfigXmlViaTemp() undefined" problem (it was written to fix a compile error in dclib due to a missing include). It's for dclib, which you will need to recompile before attempting to build valknut.
If you still have problems with the official gentoo ebuilds, it may be best to file a bug in the gentoo bugzilla.
Logged In: YES
user_id=1549895
Originator: NO
I used that patch but its still the same :( I havent used Gentoo ebuild but downloaded valknut from sf.net project
Logged In: YES
user_id=1549895
Originator: NO
I tried yestarday the Valknut SVN; I got the same problem :(
Logged In: YES
user_id=1639740
Originator: NO
I'm afraid there's not much I can do about this.
If you're really stuck, you could try fixing the "CConfig::SaveConfigXmlViaTemp() undefined" error by REVERSING this patch:
http://www.dcs.warwick.ac.uk/~csucda/patches/valknut-0.3.7-20061104-safe-config-saving.patch
But I don't recommend it, because something is still wrong with your dclib install.
Dclib and Valknut compile fine on Fedora Core 6 and RHEL 4 which are the only systems I have access to. I hear that neider manages to compile it on Mac OS X.
I suggest filing a bug in gentoo bugzilla, and hopefully people more familiar with building valknut on gentoo will be able to help you.
Logged In: YES
user_id=1549895
Originator: NO
Hi,
I tried again to compile Valknut by commenting all lines with SaveConfigXmlViaTemp function into dbconfig.cpp. Its not a good idea, the compilation goes on but it breaks on new error:
dcgui.o: In function `DCGuiApp::eventFilter(QObject*, QEvent*)':
dcgui.cpp:(.text+0xcbf9): undefined reference to `CFileManager::IsCreateShareListRunning()'
collect2: ld returned 1 exit status
make[3]: *** [valknut] Error 1
Thk
Logged In: YES
user_id=1639740
Originator: NO
OK Forget hacking valknut, you'll only end up undoing every change that depends on dclib. Instead, concentrate on fixing your dclib install, that is where the problem is.
In summary, we know this is a LINKER problem, the header files appear to be installed fine, and would have caused a different error at compile time if the header files were incorrect.
First make sure that there are no old libdc.a and libdc.so files anywhere.
Then try examining your libdc to see why the newly adding function symbols are not present e.g.
[ejs@localhost ~]$ nm /usr/lib/libdc.so.0.0.1 | fgrep IsCreateShareListRunning
00056cc0 T _ZN12CFileManager24IsCreateShareListRunningEv
[ejs@localhost ~]$ c++filt _ZN12CFileManager24IsCreateShareListRunningEv
CFileManager::IsCreateShareListRunning()
If you get no output from the "nm | fgrep" commands, that means your libdc does not contain the new function, either because it is an old version, or because it did not build correctly. In that case, try rebuilding and reinstalling dclib with the filled in doxygen comments removed from the header files, replacing them with "/** */". I've attached a patch which does this for the two functions you've had problems with.
File Added: dclib-0.3.10-remove-doxygen-comments.patch
Removes some doxygen comments