summaryrefslogtreecommitdiff
path: root/INSTALL
blob: efbc20bb3e8f2fd808d93abe8e7345c6e8a8e990 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
                            Hybrid INSTALL Document

   $Id$

   Copyright (c) 1997-2014 ircd-hybrid development team

     ----------------------------------------------------------------------

   +------------------------------------------------------------------------+
   | Note for those who don't 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" as a      |
   |   minimum. Try ./configure --help or read this file for more info on   |
   |   the possible options you can pass to configure.                      |
   +------------------------------------------------------------------------+

     ----------------------------------------------------------------------

                                  HOW TO BUILD

   As of hybrid-4, the distribution uses GNU autoconf instead of the old
   Config script. You must run ./configure before you can (sanely) build
   ircd-hybrid.

   1.  Read the NEWS file to find out about the exciting new features in
       this version. Other good reads are doc/reference.conf, and README.

   2.  Run the configure script. It will create config.h and the
       Makefiles to match your system. The paths are now handled
       with the --prefix option to configure.
       /usr/local/ircd is the default if no prefix is specified.

       ./configure --prefix=/usr/local/ircd

       The script will determine whichever of the following is best for
       your system, but you may (unsupported) force their usage with
       undefined results:

          * --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-devpoll - Enable the superior /dev/poll support on
            Solaris. Linux /dev/poll is broken and will not work with this
            option.

          * --enable-epoll - Enables epoll(4) Signal I/O system. This is
            currently only available on 2.5.44 Linux kernel versions or
            later.

          * --enable-poll - Use POSIX poll(2).

          * --enable-select - Use POSIX select(2).

          Incidentally, the order of listing above is the order of auto-
          detection in configure. So if you do have kqueue but wish to
          enable select(2) instead (bad idea), you must use --enable-select.

          * --enable-openssl - Enable the openssl dependent crypto functions.
            Required for the SSL Challenge controlled OPER feature, compressed
            and/or SSL/TLS server links, as well as SSL/TLS client connections.

            On systems where the configure script can automatically detect
            OpenSSL, this option is not necessary. If configure cannot find
            OpenSSL, you must specify a path with this option
            (--enable-openssl=/path/to/openssl)


       These are optional or have default values that may be overridden:

          * --enable-assert - Enable use of numerous debugging checks. This
            should not be used on any production servers for maximum speed
            so as to prevent cores from things that shouldn't normally happen.

          * --enable-debugging - Prepares Makefiles to compile the ircd sources
            with proper settings that are required for debugging purposes.
            This switch basically sets CFLAGS to "-g -O0".

          * --enable-halfops - Enable halfops (%, mode +h) usage. Halfops
            are similar to plain ops, but can't kick/deop plain ops. Halfops
            may or may not kick/deop other halfops depending on if (+p) is
            set. Halfops may not set (+/-p).


   3.  Run 'make'; this should build the ircd.

   4.  Run 'make install'; this will install the server, modules, and tools
       in the path with the prefix specified when configure was ran.

     ----------------------------------------------------------------------

                                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
     or unified diffs to bugs@ircd-hybrid.org so the fixes can be
     incorporated into the next release of ircd-hybrid. If hybrid crashes
     on you, PLEASE contact bugs@ircd-hybrid.org ASAP with a backtrace of
     the core. The Hybrid team can't fix bugs if no one tells us about them!

   - https://lists.ircd-hybrid.org/mailman/listinfo/hybrid
     Here you can subscribe to a mailing list for general discussion of Hybrid.

     ----------------------------------------------------------------------

                                     NOTES

   The best way to get a backtrace of the core is to follow this sequence of
   instructions:

   1.  Change to the directory containing the core file

   2.  Run gdb on the binary and the core file. With an unmodified ircd-hybrid
       installation, 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 full"

   4.  Save the output of the backtrace command and send it to
       bugs@ircd-hybrid.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.