Register | Login | Projects | Site map | About

? Search ? Romana ?

listing

How to compile an eggdrop

  • Log into your shell & type the commands specified below.


  • To log into your shell, use Putty - a free telnet/SSH client (you can download putty here). All you have to do, is to specify the IP of your shell, to choose SSH & to push the "Open" button.

  • wget ftp://ftp.eggheads.org/pub/eggdrop/source/1.6/eggdrop1.6.21.tar.gz


  • Get the archive of the eggdrop.

  • tar -zxpf eggdrop1.6.21.tar.gz


  • Uncompress the archive. If doesn't work try:
    gzip -d eggdrop1.6.21.tar.gz
    tar -xpf eggdrop1.6.21.tar

  • cd eggdrop1.6.21


  • Type cd eggdrop1.6.21 to switch to the directory the Eggdrop source was extracted to.

  • ./configure


  • Run the configure script. If you get the error "TCL not found" or "can't find C compiler" find its resolution in Troubles below.

  • make config


  • Configure the modules.

  • make


  • Compile the eggdrop.

  • make install


  • Install the eggdrop files.

  • cd ~/eggdrop


  • Change to the directory where the eggdrop was installed.

  • pico eggdrop.conf


  • Edit eggdorp.conf with pico (text editor). *** An config generator will be available soon.

  • ./eggdrop -m


  • Start the bot in new userfile creation mode. You specify "-m" option just once, in order to create the user file.

  • Go on IRC & type the commands specified below.


  • Use any IRC client, you are supposed to know how to connect to IRC.

  • /msg BOTNICK hello


  • BOTNICK is the BOT's nick you specified in config, do a /whois to be sure this it is your BOT.
    Pay attention! you do this only when you start the BOT in userfile creation mode.
    This command will add you on BOT & will grant +n global access (BOT's owner). The BOT should message you that you you are its new owner.
    If the BOT doesn't appear on IRC see Troubles.

  • /msg BOTNICK pass PASSWORD


  • Setup the password on BOT. If the BOT has scripts - you can do authorisation (auth or login commands). If the BOT has no scripts - you can connect to BOT by DCC or telnet (the telnet port is specified in config), in order to give commands.

Recommendations

  • Use the latest eggdrop version


  • Download @ http://geteggdrop.com, the latest version - eggdrop1.6.21.

  • Use the latest TCL stable version


  • Download @ http://www.tcl.tk/software/tcltk/, the latest version - TCL 8.5.11.

  • Use the latest version of a&a light


  • Download @ http://ascript.name/get, the latest version - v0.04.00 Beta 1.

  • Optimize scripts' quantity/quality you run on your eggdrop, don't overload it


  • Use scripts you really need on your eggdrop. All the nice & funny scripts you find around may be buggy and unsecure. Look for functionality instead of fun in your eggdrop.

Troubles

  • TCL was not found


  • The first thing to do is to choose the favourite package manager to install tcl and tcl-dev/tcl-devel. Every Linux distro provides such a package manager and it's the easiest way to have the application install. Some examples of package managers on some distros and install commands:

    • Ubuntu/Debian: apt-get install tcl8.5
    • SuSE: zypper in tcl
    • Redhat/Fedora: yum install tcl* (you should also run 'yum install tcl-devel', of course, without the quotes)

    TCL can be installed as root (which means that you have superuser access). If you do not have superuser access then check out below for local install:

    • wget http://www.sfr-fresh.com/unix/misc/tcl8.5.11-src.tar.gz
    • tar -zxf tcl8.5.11-src.tar.gz
    • cd tcl8.5.11/unix
    • ./configure --prefix=/usr/local --enable-threads --enable-shared
    • make
    • make test
    • make install
    • Go back to your eggdrop source's directory & type the following commands:
    • make clean
    • ./configure --with-tcllib=$HOME/local/lib/libtcl8.5.so --with-tclinc=$HOME/local/include/tcl.h
    • Continue with eggdrop installation

    TCL installed as local user:

    • wget http://www.sfr-fresh.com/unix/misc/tcl8.5.11-src.tar.gz
    • tar -zxf tcl8.5.11-src.tar.gz
    • cd tcl8.5.11/unix
    • ./configure --prefix=$HOME/local
    • make
    • make install
    • Go back to your eggdrop source's directory & type the following commands:
    • make clean
    • ./configure --with-tcllib=$HOME/local/lib/libtcl8.5.so --with-tclinc=$HOME/local/include/tcl.h
    • Continue with eggdrop installation

    Although, you might be getting an error like this 'error while loading shared libraries: libtcl8.5.so: cannot open shared object file.'.The solution is to use this command (and also add it to the ~/.bashrc file):

    • export LD_LIBRARY_PATH=$HOME/local/lib:${LD_LIBRARY_PATH}


  • configure: error: no acceptable C compiler found in $PATH


  • The "configure: error: no acceptable C compiler found in $PATH" usually appears when you don't have any compiler installed or because your compiler is missing from $PATH. You will have to use a precompiled eggdrop or to find out how to install a compiler on your operating system, or how to add it to $PATH.

    A few examples how to install gcc on some distros:

    • Ubuntu: apt-get install gcc (you might get an error related to another package named 'build essential', so if you do try using this command: 'apt-get install gcc build-essential'. You might also need to install 'automake' and 'checkinstall' so there are two other commands to run then: 'apt-get install automake' and 'apt-get install checkinstall')
    • Debian: apt-get install gcc
    • Redhat/Fedora: yum install gcc


  • error: 'Tcl_Interp' has no member named 'result'


  • The "error: 'Tcl_Interp' has no member named 'result'" appears because of TCL version 8.6 (being a beta 1 version so more unstable than 8.5). To solve this quickly delete the eggdrop1.6.21 folder, untar the eggdrop archive and './configure'. When finished, edit config.h (located in the eggdrop1.6.21 folder) and add at the end of the file:
    #define USE_INTERP_RESULT 1
    (don't touch/ignore the #, in C it's not a commented line). Then return to eggdrop installtion to step 'make config'.

  • /usr/bin/install: cannot stat `eggdrop': No such file or directory


  • The "/usr/bin/install: cannot stat `eggdrop': No such file or directory" is caused by renaming the eggdrop1.6.21 folder to eggdrop before compiling, which causes eggdrop to install over itself. The error appears at step 'make install'. There are 2 solutions.
    • Don't rename the folder and you won't get this error.
    • Install it to a different folder by using the 'make install DEST=/home/your_user/some_other_name' command (no quotes).


  • strip terminated with signal 6


  • If you get "strip terminated with signal 6", don't use the option "--enable-strip" wheb you './configure'.

  • Handle too short when adding users on networks with nicks longer than 9 chars


  • When you have troubles adding users with nicks longer than 9 chars, you will have to recompile the eggdrop. Before recompiling, edit the eggdrop.h (located in the eggdrop1.6.21/src folder)
    • look for the line: '#define HANDLEN 9 /* valid values 9->NICKMAX */'
    • Change the value '9' to whatever your network's nick length is (for example '#define HANDLEN 12').
    Then return to eggdrop installtion to step '/.configure' (don't touch/ignore the #, in C it's not a commented line).

  • make: Permission denied


  • If you are running a *BSD type system and you get the 'make: Permission denied', type "cd ." or change to a different folder then back to the eggdrop1.6.21 folder and return to eggdrop installation.

  • * The BOT doesn't appear on IRC


  • ***more details soon

Keywords: compile eggdrop, install bot, step by step, howto, faq, help, troubles, problems, explication
Aditional links: Compilation and installation of eggdrop, compile guide and FAQ, egghelp.org, how to install a&a light script
Redaction by: UniversaliA, Alexik
To do: add new user by telnet, add egg config generator
Status: to be updated, last update: 25.03.2012

First of all, check the '$username.log' file created by the eggdrop (as it is set in a&a light by default, the file should be in the 'logs' folder). You might have to wait a little before the log is written (as quick-log isn't enabled by default in a&a light, the causes are obvious). We will also give out some examples.


The most common problem is:


* Can't determine your hostname! (or * Hostname self-lookup failed.)


We will take two cases for this. First case is that your server/box uses only 1 (one) IP address.


In this case it might be possible that you didn't set the IP right. If your server has only one IP then you should leave the 'set my-ip' setting commented out (as it is by default in a&a light). If you did modify it then add a '#' in front of it and retry starting the bot. If this does not solve the problem then you should add above it the 'set my-hostname' option like this: set my-hostname "localhost" (remember, you should use localhost only if your server/box only has 1 IP address).


The second case is that your server/box uses more than 1 IP (2 or more) and you need to bind the bot process to a specific IP.


If your server/box uses more IPs then you should set the one that you want the bot to bind to (remove the # in front of the setting and then add the preferred IP between the quotes, something like this "123.123.123.123"). If this still doesn't solve the problem then you should add the 'set my-hostname' setting above this (something like this: set my-hostname "blahblahblah.m000.com" or whatever the hostname for the respective IP is).


There is a third case though (undepending of the number of IPs the server/box has) that is only happening with a&a light and some Linux distros (can't give out any examples because it mainly depends on the way the server admin configures the box). This third way is a more unorthodox way, but still works, and it is done like this: move the 'set my-ip' option above all other settings in botnick.conf (just below the '#$$$$$$$$$$$ Edit all the settings bellow $$$$$$$$$$$$' line). This should definitely get the bot started.