home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / dance414.zip / FAQ < prev    next >
Text File  |  1999-01-20  |  17KB  |  460 lines

  1. Frequently Asked Questions about the Dancer bot - 17th of June 1998.
  2.  
  3. Table of contents
  4.  
  5.   1.  In general
  6.   1.1  Is Dancer based on <insert-name-of-another-bot-here>?
  7.   1.2  Why should I choose Dancer in preference to other bots?
  8.   1.3  What machine/OS does it need.
  9.   1.4  How do I report bugs?
  10.   1.5  How do I contribute?
  11.   1.6  How do I apply patches?
  12.  
  13.   2.  Running
  14.   2.1  How do I run it?
  15.   2.1.1  How do I compile it?
  16.   2.1.1.1 Problems when compiling
  17.   2.1.1.2 Fpl not found
  18.   2.1.2  Which files do I have to edit?
  19.   2.1.3  How do I start it?
  20.   2.2  Do I have to use the launch script?
  21.   2.3  It doesn't start.
  22.   2.3.1  The logfile contains a DEBUG statement.
  23.   2.3.2  The logfile contains an ERROR statement.
  24.   2.4  It doesn't recognize me.
  25.   2.5  My friend forgot his password. Can I find it somewhere?
  26.   2.6  I cannot dcc chat with it.
  27.   2.7  It crashes in mysterious ways.
  28.   2.8  How do I upgrade smoothly?
  29.   2.9  How do I make it register with Undernet X/W channel service?
  30.   2.10 How do I bind a dancer to a vhost?
  31.   2.11 How do I enable longer than 9 letter nicks?
  32.  
  33.   3.  Commands
  34.   3.1  It doesn't answer me if I talk to it from outside the channel.
  35.   3.2  How do I use <insert-arbitrary-command-here>?
  36.   3.3  Can I issue commands in public?
  37.   3.4  Can I redirect the output of a command to someone else?
  38.   3.5  Can I add my own commands?
  39.   3.6  Invite?
  40.  
  41.   4.  Fpl
  42.   4.1  What is fpl?
  43.  
  44.   5.  Files
  45.   5.1  Where can I get the latest version of Dancer?
  46.   5.2  Where can I find the fpl library?
  47.   5.3  Where can I find <external-program-being-used>?
  48.  
  49.  
  50. ===================================================================
  51.  
  52. 1.  In general
  53.  
  54. 1.1  Is Dancer based on <insert-name-of-another-bot-here>?
  55.  
  56.   No, Dancer was started entirely from scratch. It basically started out as
  57.   TCP programming experience. Many of the commands were inspired by the Mama
  58.   bot made by pjotr (sourcecode wasn't available, probably still isn't.)
  59.  
  60. 1.2  Why should I choose Dancer in preference to other bots?
  61.  
  62.   It contains many useful services to its users. You may have a more thorough
  63.   look at the commands SEEN, TELL, EXPLAIN, EXCHANGE, COUNTRY, CONVERT, TZ,
  64.   and TOP. Provided some external programs are present at your site, you can
  65.   also have online spell checker (SPELL), webster lookup (WEBSTER), DNS lookup
  66.   (HOST), email verification (VRFY), and more.
  67.  
  68.   It is very configurable, either by the fixed settings in the dancer.config
  69.   file, or by the on-line SETtings, or by using the 99% C-alike fpl scripts.
  70.  
  71.   It fights clonebots attack very well - it has already handled numerous
  72.   attacks by up to 20 clonebots from 4 different sites. Much effort has gone
  73.   into making efficient clonebot defences, while at the same time minimizing
  74.   unfortunate effects on the innocent user.
  75.  
  76.   Future support is almost guaranteed - being a free product no absolute
  77.   guarantees are given, but because the development team consists of more than
  78.   one person it is unlikely to be discarded because one person drops out.
  79.  
  80. 1.3  What machine/OS does it need.
  81.  
  82.   Dancer is for Unix. It is being developed on SunOS and Solaris.  It also has
  83.   compiled and run from Linux, NetBSD, IRIX, FreeBSD, HPUX, and Ultrix.
  84.   Furthermore, it works on Amiga.
  85.  
  86. 1.4  How do I report bugs?
  87.  
  88.   Send a very detailed report to the mailing list (include OS and bot
  89.   version). It gives any experienced user the opportunity to help and share
  90.   wisdom. Bug reports and requests for help in private emails are not as good.
  91.  
  92. 1.5  How do I contribute?
  93.  
  94.   Dancer is an open-source project, which means it is being written by
  95.   volountary authors on their spare time. Join the mailist list and discuss
  96.   new features and functions with the rest of us. Write additions and send
  97.   context patches to the project maintainer when done and thoroughly tested.
  98.  
  99. 1.6  How do I apply patches?
  100.  
  101.   Every now and then there are patches distributed that fix bugs or add
  102.   features to existing Dancers. To apply one of those patches to your version,
  103.   do as follows:
  104.  
  105.   You must have the tool known as 'patch', and then preferably the GNU
  106.   version.
  107.  
  108.   1. cd into your dancer source dir
  109.  
  110.         % cd path/to/dancer/src
  111.  
  112.   2. run patch with the patch file as input like
  113.  
  114.         % patch < path/to/patch
  115.  
  116. ===================================================================
  117.  
  118. 2.  Running
  119.  
  120. 2.1  How do I run it?
  121.  
  122.   There are three phases to get Dancer up and running the first time (or each
  123.   time you receive a new version.) First phase is to compile it; second phase
  124.   editing important files (this can be done via the install script); third
  125.   phase starting it.
  126.  
  127. 2.1.1  How do I compile it?
  128.  
  129.   All three steps - system configuration, compilation, and installment
  130.   are done in one go.
  131.  
  132.     > make
  133.  
  134. 2.1.1.1 Problems when compiling
  135.  
  136.   SunOS Solaris (2.6 upwards usually with gcc versions 2.7.1 - 2.7.3)
  137.   -------------
  138.  
  139.     Problem:  gcc gives you the #error: "No DATAMODEL_NATIVE specified" and/or
  140.               warning: `NBBY' redefined.
  141.  
  142.     Solution: Its time to upgrade your gcc to a new version. See also:
  143.               http://www.wins.uva.nl/pub/solaris/solaris2.html#q6.28
  144.  
  145. 2.1.1.2 Fpl not found
  146.  
  147.   - If the Makefile script doesn't do it for you:
  148.  
  149.   If you have compiled fpl and the library wasn't found during the system
  150.   configuration checks (because it is unable to find libraries placed in
  151.   non-standard directories) you have to add it yourself.
  152.  
  153.   It can also end up that the configure script does find your fpl library, but
  154.   that when using i.e gdb on the Solaris dancer, it doesn't find the library.
  155.  
  156.   The following changes must be done _after_ the system configuration checks
  157.   (make configure), and _before_ compilation (make).
  158.  
  159.   In config.h you have to find and change the line
  160.  
  161.     /* #undef HAVE_LIBFPL */
  162.  
  163.   to
  164.  
  165.     #define HAVE_LIBFPL
  166.  
  167.   In Makefile you have to add -lfpl to the LIBS variable, and
  168.   -L/path/to/your/libfpl (and also -R/path/to/your/libfpl on Solaris) to the
  169.   LDFLAGS variable.
  170.  
  171.   - If things run the way they were designed to:
  172.  
  173.   Invoking the command 'make configure' (or 'make') should already have made
  174.   the 'fplcheck' shell script run and search for libfpl for you. If it doesn't
  175.   find it by itself, it asks for a manually entered path. If that doesn't work
  176.   either, your system simply doesn't have fpl installed. Accept it or install
  177.   it.
  178.  
  179. 2.1.2  Which files do I have to edit?
  180.  
  181.   Using 'make install' (or 'make') pretty much edits the necessary files for
  182.   you. After that, your bot should be able to run.
  183.  
  184.   If the above failed (or you just didn't do it) you have to...
  185.  
  186.   Most important is 'dancer.config'. You _must_ edit the "server", "nick", and
  187.   "channel" fields. If you run 'dancer config', you will get a good standard
  188.   template written to stdout that we recommend you to start with.
  189.  
  190.   Secondly you have to add yourself to the userlist in 'dancer.users',
  191.   otherwise Dancer will not recognize you at all.
  192.  
  193.   If you want to use the 'launch.sh' script to start Dancer (which is highly
  194.   recommended -- see 2.2) you must edit the "path" variable to point to the
  195.   directory from where you are running it (if you are in doubt, try the shell
  196.   command 'pwd'.)
  197.  
  198. 2.1.3  How do I start it?
  199.  
  200.   From the directory where you want to run Dancer, type either the name of the
  201.   executable file (per default 'dancer') or use the 'launch.sh' script (see
  202.   also 2.2)
  203.  
  204.   Dancer may quit IRC, due to server crashes, connections timeouts,
  205.   system shutdown, and bugs in Dancer. To ensure that it will reconnect
  206.   you can either run it from a shell loop (don't use 'launch.sh' in that
  207.   case) or from cron ('launch.sh' contains a short summary of the
  208.   syntax.)
  209.  
  210. 2.2  Do I have to use the launch script?
  211.  
  212.   No, you can start the bot directly with 'dancer'. The advantage of using the
  213.   launch script is that it will check if you already are running the bot, and
  214.   exit if so. This make it suitable to use in a cron job.
  215.  
  216. 2.3  It doesn't start.
  217.  
  218.   Make sure that your dancer.config and dancer.users are in the same directory
  219.   as the executable file and that they contain valid information.
  220.  
  221. 2.3.1 The logfile contains a DEBUG statement.
  222.  
  223.   If everything else fails try setting the environment variable DANCER_MYHOST
  224.   to the full name (host and internet domain) of your machine, ie. "setenv
  225.   DANCER_HOST breese.imada.ou.dk" (this assumes that the machine the bot runs
  226.   on is called "breese" and is located in the "imada.ou.dk" domain.) It may
  227.   also be a good idea to add this line to launch.sh if you run it from cron.
  228.  
  229. 2.3.2 The logfile contains an ERROR statement.
  230.  
  231.   The end of the logfile may show a few lines similar to this:
  232.  
  233.   12.06.00 ***     ERROR: (:Closing Link: [foobar@139.99.99.225] (Ping
  234.                    timeout)) from irc.that-funny-server.com
  235.   12.06.00 ***     Cleanup
  236.   12.06.00 ***     No seen item changed, no save performed.
  237.   12.06.00 ***     Exit
  238.  
  239.   This is no stranger than it sounds. The 'ping timeout' message is an error
  240.   message the ircd server sent you because the bot did not respond properly
  241.   to the server within time. It is likely because your network connection to
  242.   the server is very bad at the moment. You could list more than one server
  243.   for the bot to use, which will make it move on and try the next one in
  244.   cases like this.
  245.  
  246. 2.4  It doesn't recognize me.
  247.  
  248.   Some commands are password protected. The default password is "pass". Type
  249.   "/msg <yourbot> pass pass" to authenticate.
  250.  
  251.   Check if your host name is registered (SVIEW -A). Sometimes DNS fails and
  252.   you enter IRC with an IP numerics address instead of a hostname. To be on
  253.   the safe side register both types to your accounts, ie. you@*.site and
  254.   you@999.999.999.*
  255.  
  256.   NOTE: the default password is possible to configure in the .config file and
  257.   thus you must change the commands suggested accordingly.
  258.  
  259. 2.5  My friend forgot his password. Can I find it somewhere?
  260.  
  261.   No, all passwords are encrypted. You cannot read his password, but you can
  262.   re-install the default password (which can be changed, but is "pass" in all
  263.   'factory default' bots) by using the DEFPASS command.
  264.  
  265. 2.6  I cannot dcc chat with it.
  266.  
  267.   If you're behind a firewall, try CLIENT. This command makes Dancer send a
  268.   dcc chat request to you instead.
  269.  
  270.   If it says that you already have a connection or a pending attempt to get
  271.   one, you can abort it with CUT.
  272.  
  273.   Sometimes, due to congestion of the network, it is unable to establish a
  274.   connection because of some TCP timeout value. In that case there's not much
  275.   else to do than to try again.
  276.  
  277. 2.7  It crashes in mysterious ways.
  278.  
  279.   First, remove the optimize (-O, -O2 or -O3) option from the compile flags.
  280.   (A lot of gcc-versions do generate bad executables when optimizing.)
  281.  
  282.   If the bug remains, send us a report and include things like:
  283.   * the latest entries in the logfile
  284.   * possible trace-log
  285.   * details of how we should do to repeat it
  286.  
  287.   If the crash generated a core file, enter 'gdb dancer core' (or if the crash
  288.   happens while you're running the bot through gdb) enter 'bt' and include
  289.   that output in your report. enter 'quit' to leave gdb again.
  290.  
  291.   For systems with limited stack sizes (such as AmigaOS), we suggest you
  292.   enlarge the stack a lot before running Dancer to prevent getting problems
  293.   with that.
  294.  
  295.  
  296. 2.8 How do I upgrade smoothly?
  297.  
  298.   Unpack the new archive (it will get extracted in a new directory (named
  299.   after the new version).
  300.  
  301.   Compile the new version.
  302.  
  303.   Read the CHANGES file carefully. Perform all actions that are mentioned in
  304.   it as must-do-things.
  305.  
  306.   Rename the old executable and the dancer.config files (just to be able to go
  307.   back if wanted).
  308.  
  309.   Copy the new executabable to the place of the old one.
  310.  
  311.   Run 'dancer config' in the old directory. Redirect the output to a temporary
  312.   file. Edit the file according to your preferences and then save it as
  313.   'dancer.config'. Do note that it might contain new entries as well as old
  314.   ones may have been removed or got different comments.
  315.  
  316.   Run the new one.
  317.  
  318.  
  319. 2.9  How do I make it register with Undernet X/W channel service?
  320.  
  321.   Use FPL. Add this line to your dancer.fplconf
  322.  
  323.     join: "" if (!strcmp("%u", "%n")) Do("PRIVMSG X@channels.undernet.org :pass [channel] [password]");
  324.  
  325.   Replace [password] and [channel] with the appropriate strings.
  326.  
  327.  
  328. 2.10 How do I bind a dancer to a vhost?
  329.  
  330.   Enter a line similar to 'myhost=192.168.10.255' in your normal config file.
  331.   Replace the above IP address with your own prefered one.
  332.  
  333. 2.11 How do I enable longer than 9 letter nicks?
  334.  
  335.   Edit your dancer.h, the lines of interest look like:
  336.  
  337.         #define NICKLEN 9
  338.         #define NICKLENTXT "9" /*QUOTE(NICKLEN)*/
  339.  
  340.   Change both of these to fit the maximum nick length of your network.
  341.   Recompile.
  342.  
  343. ===================================================================
  344.  
  345. 3.  Commands
  346.  
  347. 3.1  It doesn't answer me if I talk to it from outside the channel.
  348.  
  349.   Dancer is a _channel_ bot. It ignores all commands from people it cannot see
  350.   on the channel. The exceptions are all CTCP, /invite, INVITE, and everything
  351.   sent through a dcc chat connection.
  352.  
  353. 3.2  How do I use <insert-arbitrary-command-here>?
  354.  
  355.   Dancer has a simple on-line help feature. HELP <cmd> gives a short
  356.   description of the command, and SYNTAX <cmd> summarize the available
  357.   arguments and options.
  358.  
  359. 3.3  Can I issue commands in public?
  360.  
  361.   Yes, start your command with at least the first 4 letters of the nickname of
  362.   the bot. Not all commands are publicly available. To use a public command
  363.   you need at least level 20, or at least level 10 and to be chanop. The
  364.   reason for this is that public commands should be used if the output is of
  365.   interest to more than just the one issuing it. See also 'HELP CMD'.
  366.  
  367. 3.4  Can I redirect the output of a command to someone else?
  368.  
  369.   Yes. Use "SHOW <nick> <cmd> <args>". Not all commands allow redirection of
  370.   their output.
  371.  
  372. 3.5  Can I add my own commands?
  373.  
  374.   Yes. It is possible to add commands through fpl. Some examples can be found
  375.   in the distribution.
  376.  
  377. 3.6  Invite?
  378.  
  379.   There are two kinds of invitations. Do not confuse these two!
  380.  
  381.   (1) Inviting Dancer to a certain channel. This is used if you
  382.       want to move Dancer to another channel. It is done by the /invite
  383.       command (this is an ircII command and may be slightly different on other
  384.       clients.) Dancer will only react to /invites from users with level 50
  385.       and above. If you don't want Dancer to migrate to other channels, you
  386.       can turn this feature off with "SET INVITE OFF".
  387.  
  388.   (2) Getting an invitation from Dancer to an invite-only channel.
  389.       This is used if you want to join an invite-only (+i) channel where
  390.       Dancer resides. It is done by sending the command "INVITE <your-passwd>"
  391.       to Dancer. Only users with level 10 and above are able to use this
  392.       feature.
  393.  
  394.  
  395. ===================================================================
  396.  
  397. 4.  Fpl
  398.  
  399. 4.1  What is fpl?
  400.  
  401.   Frexx Programming Language, FPL, is a shared library interpreting language
  402.   copyright (C) 1992-1998 by FrexxWare. FPL is Freeware and freely
  403.   distributable for non-commercial purposes only, including extensive
  404.   documentation and source code. Use within commercial products must be done
  405.   with written permission from the author.
  406.  
  407.   FPL is entirely isolated from the rest of the software. FPL is only the
  408.   programming language and nothing else. FPL is OS independent. It can (and
  409.   will) be used under other Operating Systems than this.
  410.  
  411.   For more information about FPL, fpl.library (Amiga shared library), fpl.DLL
  412.   (OS/2 dynamically linked library), fpllib.a (UNIX shared library), other FPL
  413.   versions, porting issues, bug reports, enhancement requests or anything else
  414.   regarding this subject, don't hesitate to get in touch with the author.
  415.  
  416.  Author:
  417.    Daniel Stenberg <Daniel.Stenberg@sth.frontec.se>
  418.  
  419. ===================================================================
  420.  
  421. 5.  Files
  422.  
  423. 5.1  Where can I get the latest version of Dancer?
  424.  
  425.   The official homepage of Dancer, which always contains the latest relevant
  426.   information, is at:
  427.  
  428.     http://www.fts.frontec.se/~dast/dancer/
  429.  
  430.   The official ftp site is:
  431.  
  432.     ftp://ftp.dk.net/pub/network/irc/dancer/
  433.  
  434. 5.2  Where can I find the fpl library?
  435.  
  436.   http://www.fts.frontec.se/~dast/stuff/
  437.  
  438. 5.3  Where can I find <external-program-being-used>?
  439.  
  440.   For finding programs in general 'archie' is highly recommended.  If 'archie'
  441.   isn't installed at your site you can try one of the web versions
  442.   (http://www.funet.fi/funet/archie/archieplexform.html.)  You may also want
  443.   to try a web search (guide.infoseek.com, altavista.digital.com)
  444.  
  445.   The following are examples of places where you can find some of the more
  446.   exotic programs used by Dancer. Basic programs like the sh shell, echo,
  447.   head, grep, etc. are not listed.
  448.  
  449.     host    -- DNS lookup
  450.       ftp://ftp.nikhef.nl/pub/network/host.tar.gz
  451.  
  452.     vrfy    -- Email verifier
  453.       ftp://ftp.nikhef.nl/pub/network/vrfy.tar.gz
  454.  
  455.     ispell  -- Spellchecker
  456.       http://fmg-www.cs.ucla.edu/geoff/ispell.html
  457.  
  458.     webster -- English dictionary lookup
  459.       ftp://moose.cs.indiana.edu/pub/webster/webster.tar.Z
  460.