This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.


For more information, see this announcement post. Click the X in the top right-corner of this box to dismiss this message.

Can't telnet in?

General support and discussion of Eggdrop bots.
H
HondaATC
Voice
Posts: 8
Joined: Thu Jan 17, 2008 12:12 am

Can't telnet in?

Post by HondaATC »

I got the eggdrop configured, and started without any errors. It didn't show up in my channel or even on my server so I'm attempting to Telnet in, which isn't working out either. I'm a little confused though, on what I should use as the hostname in telnet? Should it be the IP for the box the eggdrop is running on (same thing I use to SSH in with?) and then the port I provided in my config file (Which was 2222) or am I going about this the wrong way?
User avatar
Alchera
Revered One
Posts: 3344
Joined: Mon Aug 11, 2003 12:42 pm
Location: Ballarat Victoria, Australia
Contact:

Post by Alchera »

Add [SOLVED] to the thread title if your issue has been.
Search | FAQ | RTM
m
metroid
Owner
Posts: 771
Joined: Wed Jun 16, 2004 2:46 am

Post by metroid »

Try running it with -n so you can see what the eggdrop is reporting.
H
HondaATC
Voice
Posts: 8
Joined: Thu Jan 17, 2008 12:12 am

Post by HondaATC »

metroid wrote:Try running it with -n so you can see what the eggdrop is reporting.
I restarted it with the -m -n switches and it worked! Thanks.
n
nml375
Revered One
Posts: 2860
Joined: Fri Aug 04, 2006 2:09 pm

Post by nml375 »

Then you have some issues with your tcl-libraries falsely being detected as non-threaded. "Quickfix" would be to compile your own set of libraries and link with these, Realfix would be to try and determine why it was'nt detected properly (one suggested there may be multiple libraries, some threaded other not, installed on the system causing troubles).
NML_375
H
HondaATC
Voice
Posts: 8
Joined: Thu Jan 17, 2008 12:12 am

Post by HondaATC »

Well, when I first setup the eggdrop during the initial config it said the TCL libraries were not found. This is a new shell, and I assumed they just werent installed. I downloaded and installed them, and then the eggdrop compile process went on like it should have. How would I go about checking to see if I have 2 libraries installed, or find out if I don't have them (the libraries) configured properly?
n
nml375
Revered One
Posts: 2860
Joined: Fri Aug 04, 2006 2:09 pm

Post by nml375 »

First step would be to locate any and all copies of libtcl* and tcl.h. locate usually does the trick:

Code: Select all

[user@linux src]$ locate libtcl
/home/user/threadtcl/lib/libtcl8.4.so
/home/user/threadtcl/lib/libtclstub8.4.a
/home/user/tcl8.4.15/unix/libtcl8.4.so
/home/user/tcl8.4.15/unix/libtclstub8.4.a
/home/user/usr/lib/libtcl8.4.so
/home/user/usr/lib/libtclstub8.4.a
/home/user/usr/lib/libtcl.so
/usr/lib/libtcl8.4.so
/usr/lib/libtclstub8.4.a
/usr/lib/libtcl.so
[user@linux src]$
If, like the example above, you find multiple copies of libtcl8.4.so (or with different version-numbers, etc), this means there are multiple libraries installed. locate is not foolproof, as it uses a cached database rather than searching through the actual filesystem, but it's still a good start. You could also use find, although this usually takes alot longer.

Next, check which libraries your eggdrop binary was linked against. Use ldd for this:

Code: Select all

[user@linux eggdrop1.6.18]$ ldd eggdrop
        linux-gate.so.1 =>  (0x00457000)
        libtcl8.4.so => /usr/lib/libtcl8.4.so (0x005c2000)
        libm.so.6 => /lib/libm.so.6 (0x00594000)
        libdl.so.2 => /lib/libdl.so.2 (0x005bc000)
        libdns.so.20 => /usr/lib/libdns.so.20 (0x00eb6000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x0793c000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00111000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x00d7d000)
        libc.so.6 => /lib/libc.so.6 (0x00475000)
        /lib/ld-linux.so.2 (0x00458000)
        libisc.so.9 => /usr/lib/libisc.so.9 (0x00124000)
        libcrypto.so.5 => /lib/libcrypto.so.5 (0x001fb000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x006ad000)
[user@linux eggdrop1.6.18]$
In this case, the eggdrop binary was linked against a systemwide installed tcl-library (/usr/lib/libtcl4.8.so). We need to keep track of this, for one final check...

Next, we need to check the logs from the autoconf script for building the source. Especially, what we're looking for is which tcl-library it found. grep should find the information for us:

Code: Select all

[user@linux eggdrop1.6.18]$ grep "checking for Tcl" config.log -A3
configure:9648: checking for Tcl library
configure:9660: result: found /usr/lib/libtcl8.4.so
configure:9683: checking for Tcl header
configure:9694: result: found /usr/include/tcl.h
configure:9730: checking whether the Tcl system has changed
configure:9755: result: yes
configure:9773: checking for Tcl version
configure:9785: result: 8.4
configure:9797: checking for Tcl patch level
configure:9809: result: 8.4.9
configure:9871: checking for Tcl_Free in -ltcl8.4
configure:9901: gcc -pipe -o conftest -g -O2 -Wall   conftest.c -ltcl8.4 -L/usr/lib -lm -lpthread -ldl -ldns -lnsl  >&5
configure:9907: $? = 0
configure:9911: test -z
--
configure:9966: checking for TclpFinalizeThreadData in -ltcl8.4
configure:9996: gcc -pipe -o conftest -g -O2 -Wall   conftest.c -ltcl8.4 -L/usr/lib -lm -lpthread -ldl -ldns -lnsl  >&5
/tmp/ccEwulTG.o(.text+0xd): In function `main':
/home/nml375/bleh/eggdrop1.6.18/conftest.c:96: undefined reference to `TclpFinalizeThreadData'
[user@linux eggdrop1.6.18]$
Here we see that the autoconf script found libtcl8.4.so at /usr/lib (same location as above, good), and that it detected it as non-threaded (TclpFinalizeThreadData did not exist within the library). In this case, this is good, since this installation is not threaded.


Could you test these three steps and post the output?
NML_375
H
HondaATC
Voice
Posts: 8
Joined: Thu Jan 17, 2008 12:12 am

Post by HondaATC »

Heres what I got:

Code: Select all

[HondaATC@server134 ~]$ locate libtcl
/home/HondaATC/tcl/lib/libtcl8.4.so
/home/HondaATC/tcl/lib/libtclstub8.4.a
/home/HondaATC/tcl8.4.17/unix/libtcl8.4.so
/home/HondaATC/tcl8.4.17/unix/libtclstub8.4.a
/usr/lib/libtcl8.4.so
So it looks like you were right, 2 different installs.

Code: Select all

[HondaATC@server134 eggdrop]$ ldd eggdrop
        linux-gate.so.1 =>  (0x00a79000)
        libtcl8.4.so => /usr/lib/libtcl8.4.so (0x0087d000)
        libm.so.6 => /lib/libm.so.6 (0x0083b000)
        libdl.so.2 => /lib/libdl.so.2 (0x007d4000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x007da000)
        libc.so.6 => /lib/libc.so.6 (0x00692000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00864000)
        /lib/ld-linux.so.2 (0x00670000)
And eggdrop's using the one that was already installed, oddly because the tcl 8.4.17 directory is where I put the one I did, and it didn't recognize the user/lib set to start with.

Code: Select all

[HondaATC@server134 eggdrop]$ grep "checking for Tcl" config.log -A3
grep: config.log: No such file or directory
Looks like the logging file was turned off or something?
n
nml375
Revered One
Posts: 2860
Joined: Fri Aug 04, 2006 2:09 pm

Post by nml375 »

the config.log file would be where you unpacked the source and compiled your eggdrop, it is not copied upon make install.

Did you use either --with-tcllib= and/or --with-tclinc= directives when running ./configure? And if so, did you point it at the tcl-library in your home-directory?
NML_375
H
HondaATC
Voice
Posts: 8
Joined: Thu Jan 17, 2008 12:12 am

Post by HondaATC »

Not from what I can recall. I ran the standard ./configure and during that got the error about the tcl libraries missing. I remember it saying it couldn't locate them, but then asking if I wanted to point to the location of them, but I didn't even have any idea where to look so I just canceled that, and then after some research installed what evidently was the second Tcl library. After installing the second library I ran ./configure again and it worked without any errors.
n
nml375
Revered One
Posts: 2860
Joined: Fri Aug 04, 2006 2:09 pm

Post by nml375 »

The contents of the config.log would help, but this is what I assume occured:
The configure-script was unable to locate the system-wide installation of libtcl, and was thus left with the one in your home directory. Testing this library most likely revealed it to be non-threaded, and hence your eggdrop was compiled without some modifications needed with threaded libraries.

Unfortunately, it was however linked against the system-wide library, which indeed is threaded, resulting in your eggdrop freezing when it tries to fork() into background.

You could try to recompile your eggdrop, explicitly telling the configure-script to look for tcl at /usr/lib/libtcl8.4.so. Hopefully, this will then be properly detected as threaded, the proper code will be included into your eggdrop, and everything will work like a charm.
NML_375
H
HondaATC
Voice
Posts: 8
Joined: Thu Jan 17, 2008 12:12 am

Post by HondaATC »

I finally got time to try and recompile the eggdrop today, and when I did it, its still pointing to the HondaATC/tcl/ library. How can I force it to look for/find the system wide one?

edit: OK, I ran the commands you had mentioned above and when I run those and point to the usr/lib/ set I get this error:

checking for Tcl library... using /usr/lib/libtcl8.4.so
checking for Tcl header... using /usr/lib/libtcl8.4.so
checking whether the Tcl system has changed... yes
checking for Tcl version...
checking for Tcl patch level...
configure: error:

Your Tcl version is much too old for Eggdrop to use. You should
download and compile a more recent version. The most reliable
current version is 8.4.6 and can be downloaded from
ftp://tcl.activestate.com/pub/tcl/tcl8_4/.

See doc/COMPILE-GUIDE's 'Tcl Detection and Installation' section
for more information.

[HondaATC@server134 eggdrop1.6.18]$
n
nml375
Revered One
Posts: 2860
Joined: Fri Aug 04, 2006 2:09 pm

Post by nml375 »

Use the --with-tcllib and --with-tclinc options to specify which tcl-library and tcl.h-file to use when running the autoconf script (./configure --with-tcllib=/usr/lib/libtcl8.4.so --with-tclinc=/usr/include/tcl.h). This should make autoconf try and use the system-wide installation of tcl.

Keep in mind that --with-tclinc needs to point at the systemwide tcl.h headerfile, not the library!
NML_375
H
HondaATC
Voice
Posts: 8
Joined: Thu Jan 17, 2008 12:12 am

Post by HondaATC »

I just ran that command you posted (./configure --with-tcllib=/usr/lib/libtcl8.4.so --with-tclinc=/usr/include/tcl.h) and I still got the same error as above about the libraries being way to old for eggdrop to use.



configure: warning:

The file '/usr/include/tcl.h' given to option --with-tclinc is not valid.

configure will now attempt to autodetect both the Tcl library and header.

checking for Tcl library... using /lib
checking for Tcl header... using /
checking whether the Tcl system has changed... yes
checking for Tcl version...
checking for Tcl patch level...
configure: error:

Your Tcl version is much too old for Eggdrop to use. You should
download and compile a more recent version. The most reliable
current version is 8.4.6 and can be downloaded from
ftp://tcl.activestate.com/pub/tcl/tcl8_4/.

See doc/COMPILE-GUIDE's 'Tcl Detection and Installation' section
for more information.
n
nml375
Revered One
Posts: 2860
Joined: Fri Aug 04, 2006 2:09 pm

Post by nml375 »

Seems you've got a different location of tcl.h, or possibly missing headers/devel-packages of tcl (if using pkg/rpm/deb installation).

See if you can locate tcl.h, and use the proper path. If you can't find it, it would seem headers and such have not been installed, and should be installed by root.
NML_375
Post Reply