  *********** Note for those who dont bother reading docs *****************
  * Reading INSTALL is now a must, as the old DPATH is now specified when *
  * configure is run.                                                     *
  * - You now need to ./configure --prefix="/path/to/install/it"          *
  *                                                                       *
  * The old config format WILL NOT WORK.  Please see point 6!             *
  *************************************************************************

HOW TO BUILD:
-------------
As of hybrid-4, the distribution uses gnu autoconf instead of the old
Config script.  The Makefile has also been updated to include CFLAGS
defines for popular modern OSes.

0.  Read the ChangeLog file to find out about the exciting new
features in this version.  Other good reads are doc/whats-new.txt, BUGS,
doc/example.conf, and README.FIRST

1.  Run the configure script.  It will create include/setup.h and the
Makefiles to match your system.  In hybrid-7, the paths are now handled
with the --prefix option to configure, not in config.h.  /usr/local/ircd
is the default if no prefix is specified.
	./configure --prefix="/usr/local/ircd"

NOTE:  There are some special optional parameters to the configure script
       that some admins may wish to use.

--enable-kqueue - Use the superior kqueue(2) system call as opposed to the
                  default poll(2).  This is currently only available on
                  FreeBSD 4.1 or higher.

--enable-openssl - Enable the openssl dependent crypto functions.  This will
                   allow CHALLENGE to work.

2.  Look over the "include/config.h" file.  This allows you to change
the remaining hard coded options of how the ircd will operate.  Most 
admins will only have to change a few settings.  "HARD_FDLIMIT_" and
"INIT_MAXCLIENTS" are two that must be changed to the proper values for 
your operating system.  Note that these two settings must be <= FD_SETSIZE 
(usually defined in the system includes, but may need to overridden in 
the Makefile).  USE_SYSLOG is the final one that most admins will need to 
edit.  Note that you must have permission by the sysadmin to send messages 
to the system log files.  All other settings in config.h are not necessary 
to edit.

3.  "make" should build ircd.

4.  "make install" to install the server, modules, and tools in the path 
defined in config.h and the prefix specified when configure was run.

5.  If you wish to enable the user log, oper log, and failed oper log, issue 
these commands at the shell prompt (in the prefix directory)
$ touch logs/userlog
$ touch logs/operlog
$ touch logs/foperlog

Note that if you use different names in ircd.conf, you must 'touch' those 
specific names.

6.  If you are upgrading from hybrid6/5, the config file has changed
drastically.. 

There is a utility to convert your old config file, to the new format!
in prefix/bin there is something called "convertconf".  its usage is:
./convertconf (old config file to convert) (converted file name)

Once this is done, move your new config to prefix/etc/ircd.conf and
EDIT IT!  There are still things that need changing in the config, 
including the fact that classes must be above auth/connect blocks!

HOW TO GET HELP:
----------------
Send Check or Money Order to...  just kidding!  You're on your own for
support.  Try asking other ircd-hybrid admins on EFnet if you can't fix
it yourself.  If you do fix anything, however, please send context
diffs to ircd-hybrid@the-project.org so the fixes can be incorporated
into the next release of ircd-hybrid.  If hybrid crashes on you,
PLEASE CONTACT ircd-hybrid@the-project.org ASAP with a backtrace of
the core.  The hybrid team can't fix bugs if no one tells us about them!

There is now a mailing list for general discussion of Hybrid.  To subscribe
to the Hybrid List, send email to listmanager@the-project.org with
the subject "subscribe hybrid".

NOTES:
------
The best way to get a backtrace of the core is to follow this sequence of 
instructions:
1.  Change to the directory where the core file is
2.  Run gdb on the binary and the core file.  With an unmodified Hybrid-7, 
an example command line is below (in the /usr/local/ircd directory)
$ gdb bin/ircd ircd.core
3.  At the "(gdb)" prompt, enter the command "bt"
4.  Save the output of the backtrace command and send it to 
ircd-hybrid@the-project.org.
5.  Be sure to save the ircd binary, the modules, and the core file in a 
safe place in case the developers need to look deeper than a backtrace 
provides.

OPENSSL NOTES:
--------------
Older FreeBSD machines sometimes have the obsolete ports version of OpenSSL
libcrypto in /usr/local/lib.  When configure is used with --enable-openssl, 
and libintl is detected in /usr/local/lib, the /usr/local/lib directory will
be searched BEFORE the system /usr/lib for libraries by the linker.  The 
linker may try to link to the old /usr/local/lib libcrypto instead of the 
system /usr/lib libcrypto.  Some older versions may cause error messages 
similar to the following:

gcc -g -O2 -DIRCD_PREFIX=\"/home/wcampbel/ircd\" -Wl,-export-dynamic
-L/usr/local/lib -o ircd blalloc.o channel.o vchannel.o class.o client.o
dline_conf.o event.o fdlist.o fileio.o hash.o irc_string.o ircd.o ircdauth.o
ircd_signal.o linebuf.o list.o listener.o m_error.o match.o memdebug.o
modules.o motd.o mtrie_conf.o oldparse.o numeric.o packet.o parse.o res.o rsa.o
restart.o s_auth.o s_bsd.o s_bsd_kqueue.o s_conf.o s_debug.o s_gline.o s_log.o
s_misc.o s_serv.o s_stats.o s_user.o scache.o send.o sprintf_irc.o tools.o
whowas.o lex.yy.o y.tab.o version.o -lintl -ldescrypt  -lcrypto -lfl
rsa.o: In function `get_randomness':
/home/wcampbel/dev/ircd-hybrid-7/src/rsa.c(.text+0x60): undefined reference to
`RAND_pseudo_bytes'
/usr/local/lib/libcrypto.so: undefined reference to `ERR_load_RSAREF_strings'
/usr/local/lib/libcrypto.so: undefined reference to `RSA_PKCS1_RSAref'
*** Error code 1

If this is the case, you may need to rerun configure without the 
--enable-openssl option, manually edit src/Makefile to put -L/usr/lib before
the -L/usr/local/lib in LDFLAGS, or remove the old openssl from /usr/local, and
recompile all applications that use libcrypto to use the system one.

This may be kludged in the future.

--------------------------------------------------------------------------------
$Id: INSTALL,v 7.14 2001/05/05 13:46:23 fl_ Exp $
