Eggdrop 1.9.2 documentation

# Frequently Asked Questions

(a.k.a. Why doesn’t this thing work?!”)

WHAT DO I DO IF I GET THE ERROR “USER FILE NOT FOUND”?

> 1. Run Eggdrop with the “-m” option (i.e. “eggdrop -m eggdrop.conf”).
> 2. Go to IRC and send “hello” to your bot (i.e. “/msg mybot hello”).
> 3. You will become an owner on your bot. You can leave the bot running (nobody else will become an owner if they say “hello”), but in the future, don’t use the “-m” option when running the bot.

WHAT THE HECK IS Tcl?

> Tcl is a scripting language written by John Ousterhout. It’s much better than most “built-in” script languages (like the one in ircII) and is meant to be linked with anything needing a scripting language, so I linked it with Eggdrop. The file “tcl-commands.doc” in the doc directory contains a list of additional Tcl commands provided by Eggdrop. There are also several example scripts in the scripts/ directory, and one in the doc directory called first_script.txt. Hundreds of scripts floating around on the ftp/web sites if you like working by example (which is typically the best way).

MY BOT DIES, AND THE LAST ENTRY IN THE LOGFILE IS “RECEIVED TERMINATE SIGNAL”. WHAT DOES THAT MEAN, AND CAN I PREVENT IT?

> There’s nothing you can do to prevent it. It means the system administrator is killing the Eggdrop process. Most of the time, it’s an automatic thing that happens when the system is being rebooted, so it’s harmless. If you have a crontab running, the bot will get restarted when the system is back online. Occasionally, the system administrator will kill the bot manually. For example, if he/she doesn’t want bots running on the system.

SOMEONE ELSE SET UP A BOT I DON’T LIKE. ARE THERE ANY BACKDOORS I CAN USE TO TAKE THEIR BOT DOWN?

> No, there have never been any backdoors and there never will be, so please stop asking. Every once in a while, someone finds a way to exploit a bug in Eggdrop, but we fix these bugs as soon as we find out about them. If you want to bring down someone else’s bot, you will not have my/our help.

WHAT ARE MODULES?

> Modules are a way of adding extra features to the bot, much like Tcl scripts, without requiring the bot to be recompiled. See doc/MODULES for more information.

CAN I COMPILE EGGDROP WITHOUT DYNAMIC MODULES?

> Yes, you can. If the configure script detects that your system CAN’T run modules, it will setup ‘make’ to link the modules in statically for you. You can choose this option yourself by using ‘make static’. You can also try to compile dynamic modules on a static-only system by using ‘make eggdrop’.

DO I STILL NEED TO ‘loadmodule’ MODULES?

> YES, when you compile statically, all the modules are linked into the main executable. HOWEVER, they are not enabled until you use loadmodule to enable them, hence you get nearly the same functionality with static modules as with dynamic modules.

WHERE CAN I GET A PRE-COMPILED EGGDROP FOR MY COMPUTER?

> It is HIGHLY recommended AGAINST using pre-compiled Eggdrops from un-trusted sources. Eggdrop has been a regular target for hacking and crashing. Distribution of pre-compiled (binary) versions of Eggdrop are the easiest way for hackers to provide you with the easiest (and most dangerous) way of gaining access to, not only your bot, but to your computer account directly. Don’t advertise your pre-compiled Eggdrop binary sites on the Eggdrop list either. =P

I GET ‘Makefile:3 :invalid operator’ OR SOME-SUCH-THING WHEN I TRY TO ‘make’.

> Try ‘gmake’.

WHEN I ‘tclsh scripts/weed <userfile> c’ IT BARFS CHUNKS AT ME AND DIES. :(

> Upgrade your Tcl. You are probably using Tcl 7.5 or earlier. Some of the commands in weed require Tcl7.6 to run, so either upgrade it or remove the offending lines from you userfile manually (those starting with ‘.’ generally) and accept the loss of that data.

I GET “ld-elf.so.1: Shared object “libtcl80.so.1” not found” or “eggdrop: error in loading shared libraries libtcl8.1.so: cannot open shared object file: No such file or directory” WHEN I TRY TO START MY BOT.

> ‘./configure’ is looking in the wrong place for Tcl; it looks like it compiled with one version of Tcl and tries to load another. Maybe your sysadmin upgraded Tcl and didn’t tell you. In that case, you should just need to recompile your bot.

> Maybe, when upgrading, he didn’t clean the old version of Tcl and ‘./configure’ is looking for the files in the wrong places, or trying to use different versions of tcl.h and libtcl*. Smack your admin and have him install Tcl properly. ;)

> You can also try:

>     ./configure --with-tcllib=<path-to-tcl-lib>
>                 --with-tclinc=<path-to-tcl-inc>

> This will tell configure where to look for the Tcl files.

> Try looking for libtcl by:

>     ls /usr/lib/libtcl*
>     ls /usr/local/lib/libtcl*

> Try looking for tcl.h by:

>     ls /usr/include/tcl.h
>     ls /usr/local/include/tcl.h

>     If everything else fails, try to install Tcl to your home dir ;)
>     (Suggested by dw@Undernet, dw@lixom.nu)

I GET A WHOLE PILE OF “Unresolved symbol ‘Tcl_AppendResult’” (OR SOME OTHER SYMBOL) WHEN I TRY TO LOAD A MODULES.

> POSSIBILITY A: See previous section.

> POSSIBILITY B:

> > Some of the standard libraries have been compiled for static linking only on your machine, you have 3 options:

> > > 1. If it’s your own machine, recompile Tcl using dynamic linking by using ‘./configure –enable-shared’ when you configure Tcl (not the bot) and then remake, and reinstall.
> > > 2. If it’s not your machine, you may have to resort to ‘make static’ and ‘make install DEST=”path”’ to make and install your bot.
> > > 3. If you are of a more aggressive sense of mind, go beat the stuffing out of your admin for having lame static libraries. :)