3 # By Carlo Wood (carlo@runaway.xs4all.nl)
5 # For a description of the syntax of this configuration file,
6 # see the config/Configure script.
8 # TO CONFIGURE THE SERVER, TYPE: 'make config' in the top level directory !
11 #### Start of system configuration section. ####
14 exec_prefix=@exec_prefix@
18 CFLAGS_DEFAULT="@CFLAGS@"
19 CPPFLAGS_DEFAULT="@CPPFLAGS@"
20 LDFLAGS_DEFAULT="@LDFLAGS@"
22 ac_cv_header_poll_h=@ac_cv_header_poll_h@
23 unet_cv_func_poll_syscall=@unet_cv_func_poll_syscall@
24 ac_cv_header_syslog_h=@ac_cv_header_syslog_h@
26 #### End of system configuration section. ####
28 if [ -z "$CONFIG_BATCH" ]; then
29 echo "**************************************************************************"
30 echo "Error: Please run 'make config' that resides in the top level directory!"
31 echo "**************************************************************************"
35 mainmenu_name "Undernet IRC Daemon Configuration"
36 mainmenu_option next_comment
37 if [ "$CONFIG_BATCH" = "n" ]; then
38 echo "* Welcome to the Undernet IRC Daemon Configuration script."
39 echo "* You can restart this configuration at any time by typing 'make config'."
40 echo "* If you need help with your decision on any question, type a '?'"
47 if [ "$DEFAULTS" != "none" ]; then
48 bool 'Do you want to change your previous configuration' CHANGE_CONFIG
49 if [ "$CHANGE_CONFIG" = "n" ]; then
50 echo "Ok, I will only prompt you for NEW parameters."
60 mainmenu_option next_comment
61 comment 'Debugging (do not define this on production servers)'
62 bool 'Do you want to enable debugging output' DEBUGMODE
63 bool 'Do you want to enable asserts and memory allocation checking' CONFIG_NDEBUG
65 if [ "$CONFIG_NDEBUG" = "n" ]; then
66 if [ -z "$EXTRA_CPPFLAGS" ]; then
67 EXTRA_CPPFLAGS="-DNDEBUG"
69 EXTRA_CPPFLAGS="-DNDEBUG $EXTRA_CPPFLAGS"
72 bool 'Are you testing on a host without DNS' NODNS
75 mainmenu_option next_comment
76 comment 'Compile stuff'
77 if [ "$prefix" = "NONE" ]; then
80 if [ "$exec_prefix" = "NONE" ]; then
81 eval exec_prefix="$prefix"
83 string 'Which compiler do you want to use' CC "$CC_DEFAULT"
84 echo "* For the following four questions, specify 'none' when you want it to be empty."
85 if [ -z "$cflags_O3_remark" -a -n "$CFLAGS" ]; then
86 CFLAGS_DEFAULT=`echo "$CFLAGS" | sed -e 's%-O2%-O3%'`
87 if [ "$CFLAGS_DEFAULT" != "$CFLAGS" ]; then
88 echo "You are highly advised to use -O3 instead of -O2 if you're short in cpu cycles!"
89 echo "Please read documentation (press '?'):"
93 eval string "'What flags should I pass to $CC [none]'" CFLAGS "'$CFLAGS_DEFAULT'"
94 define_macro cflags_O3_remark done
95 string 'Do you need extra include directories [none]' EXTRA_INCLUDEDIRS none
96 if [ -z "$LDFLAGS_DEFAULT" ]; then
99 eval LDFLAGS_DEFAULT="$LDFLAGS_DEFAULT"
101 string 'Which linker flags do you need [none]' LDFLAGS "$LDFLAGS_DEFAULT"
102 if [ -z "$LIBS" ]; then
105 string 'Which extra libraries do you need [none]' IRCDLIBS "$LIBS"
106 bool 'Generate debug symbols?' DEBUGSYMBOLS "y"
107 bool 'Compile in profiling support (gcc and maybe SUNpro)?' IRCUPROFILE "n"
109 if [ "$DEBUGSYMBOLS" = "y" ] ; then
112 if [ "$IRCUPROFILE" = "y" ] ; then
115 define_string DEBUGFLAGS "$ZSTEMP"
116 eval bindir="$bindir"
117 string 'In which directory should I install the ircd binary' BINDIR $bindir
118 if [ ! -d "$BINDIR" ]; then
119 echo "$BINDIR : No such directory"
121 string 'What should the name of the installed symbolic link to the exectuable be' SYMLINK ircd
122 string 'Which permissions do you want the binary to have' IRCDMODE 711
123 string 'Which owner do you want the binary to have' IRCDOWN "`id | sed -e 's/.*uid=[0-9]*(//' -e 's/).*//' 2> /dev/null`"
124 string 'Which group do you want the binary to have' IRCDGRP "`id | sed -e 's/.*gid=[0-9]*(//' -e 's/).*//' 2> /dev/null`"
126 string 'Where should I install the man page' MANDIR $mandir
127 if [ "$CFLAGS" = "none" ]; then
130 if [ "$EXTRA_INCLUDEDIRS" = "none" ]; then
133 if [ "$LDFLAGS" = "none" ]; then
136 if [ "$IRCDLIBS" = "none" ]; then
139 if [ -n "$EXTRA_INCLUDEDIRS" ]; then
140 for i in $EXTRA_INCLUDEDIRS; do
141 if [ -z "$EXTRA_CPPFLAGS" ]; then
144 EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS -I$i"
148 if [ -z "$EXTRA_CPPFLAGS" ]; then
149 CPPFLAGS="-I../include -I../config"
151 CPPFLAGS="-I../include -I../config $EXTRA_CPPFLAGS"
153 echo "EXTRA_CPPFLAGS=\"$EXTRA_CPPFLAGS\"" >>$CONFIG
154 echo "CPPFLAGS=\"$CPPFLAGS\"" >>$CONFIG
155 bool 'Use inlining for a few crucial functions' FORCEINLINE y
158 if [ "$ac_cv_header_poll_h" = "yes" ]; then
159 if [ "$unet_cv_func_poll_syscall" = "yes" ]; then
160 define_bool USE_POLL y
162 mainmenu_option next_comment
163 comment 'Operating System specific defines.'
164 bool 'You have poll(), but do you want to use it' USE_POLL n
169 mainmenu_option next_comment
170 comment 'Host specific defines'
171 if [ -f /etc/resolv.conf ]; then
172 DOMAINNAME_DEFAULT="`awk '/^domain/ { print $2; exit }' /etc/resolv.conf`"
174 string 'What is the domain name of your network' DOMAINNAME $DOMAINNAME_DEFAULT
175 if [ -z "$DOMAINNAME" ]; then
178 string 'Please give a random seed of eight characters' RANDOM_SEED 12345678
179 bool 'Does your host have a reliable clock' RELIABLE_CLOCK
182 mainmenu_option next_comment
183 comment 'General defines'
184 bool 'Do you want the daemon set its own uid/gid (say yes for chroot!)' CONFIG_SETUGID
185 if [ "$CONFIG_SETUGID" = "y" ]; then
186 int ' UID of irc daemon' IRC_UID
187 int ' GID of irc daemon' IRC_GID
188 bool ' Change root ('/') after start of daemon' CHROOTDIR
190 define_bool CHROOTDIR n
191 define_int IRC_UID $IRC_UID
192 define_int IRC_GID $IRC_GID
193 bool 'Allow to specify configuration file on command line' CMDLINE_CONFIG
194 if [ "$CMDLINE_CONFIG" = "y" ]; then
195 echo " SECURITY: Then don't install the daemon SUID or SGID !"
198 bool 'Do you need virtual hosting' VIRTUAL_HOST
200 bool 'Will you connect to more then one server at a time' HUB
201 if [ "$PREV_HUB" != "$HUB" ]; then
207 mainmenu_option next_comment
208 comment 'Paths and files'
209 eval DPATH_DEFAULT="${prefix}/lib/ircd"
210 string 'Directory where all ircd stuff resides' DPATH $DPATH_DEFAULT
211 if [ "$CHROOTDIR" = "y" ] ; then
212 define_string SPATH "/$SYMLINK"
214 define_string SPATH "$BINDIR/$SYMLINK"
216 echo "The following filenames are either full paths or files within DPATH"
217 string 'Server configuration file' CPATH 'ircd.conf'
218 string 'Server MOTD file' MPATH 'ircd.motd'
219 string 'Server remote MOTD file (3 lines max)' RPATH 'remote.motd'
220 if [ "$DEBUGMODE" = "y" ]; then
221 string 'Debug file if DEBUGMODE' LPATH '/tmp/ircd.log'
223 define_string LPATH "$LPATH"
225 string 'File for server pid' PPATH 'ircd.pid'
228 mainmenu_option next_comment
229 comment 'Logging (filenames are either full paths or files within DPATH)'
230 bool 'Do you want to log the use of /WHO x% (recommended)' CONFIG_LOG_WHOX y
231 if [ "$CONFIG_LOG_WHOX" = "y" ]; then
232 string ' Give the path and(or) filename of this log file' WPATH 'whox.log'
235 comment 'Bad Channel G-Lines allow operators to add channel masks to a list which prohibits local clients from being able joining channels which match the mask. Remote BadChan Glines allow Uworld to add or remove channels from the servers internal list of badchans'
237 bool 'Do you want to enable Bad Channel G-lines' BADCHAN y
238 if [ "$BADCHAN" = "y" ]; then
240 echo " WARNING DO _NOT_ USE LOCAL BADCHANNEL GLINES ON UNDERNET"
241 echo " Use of LOCAL BAD Channel G-Lines can be cause for REMOVAL"
242 bool 'Allow LOCAL BAD Channel G-lines' LOCAL_BADCHAN
245 bool 'Do you want to log G-lines to a separate file' CONFIG_LOG_GLINES
246 if [ "$CONFIG_LOG_GLINES" = "y" ]; then
247 string ' Give the path and(or) filename of this log file' GPATH 'gline.log'
249 bool 'Do you want to log JUPEs to a separate file' CONFIG_LOG_JUPES y
250 if [ "$CONFIG_LOG_JUPES" = "y" ]; then
251 string ' Give the path and(or) filename of this log file' JPATH 'jupe.log'
253 bool 'Do you want to log OPMODEs and CLEARMODEs to a separate file' CONFIG_LOG_OPMODES y
254 if [ "$CONFIG_LOG_OPMODES" = "y" ]; then
255 string ' Give the path and(or) filename of this log file' OPATH 'opmode.log'
257 bool 'Do you want to log connecting users to a separate file' CONFIG_LOG_USERS
258 if [ "$CONFIG_LOG_USERS" = "y" ]; then
259 string ' Give the path and(or) filename of this log file' FNAME_USERLOG users.log
261 bool 'Do you want to log Opers to a separate file' CONFIG_LOG_OPERS
262 if [ "$CONFIG_LOG_OPERS" = "y" ]; then
263 string ' Give the path and(or) filename of this log file' FNAME_OPERLOG opers.log
265 if [ "$ac_cv_header_syslog_h" = "yes" ]; then
266 bool 'Do you want to use syslog' USE_SYSLOG
270 if [ "$USE_SYSLOG" = "y" ]; then
271 bool ' Log all operator kills to syslog' SYSLOG_KILL
272 bool ' Log all remote squits for all servers to syslog' SYSLOG_SQUIT
273 bool ' Log remote connect messages for other all servs' SYSLOG_CONNECT
274 bool ' Log all users who successfully become an Oper' SYSLOG_OPER
275 bool ' Send userlog stuff to syslog' SYSLOG_USERS
276 if [ "$SYSLOG_KILL" = "n" -a "$SYSLOG_SQUIT" = "n" -a \
277 "$SYSLOG_CONNECT" = "n" -a "$SYSLOG_OPER" = "n" -a \
278 "$SYSLOG_USERS" = "n" ]; then
279 define_macro LOG_FACILITY $LOG_FACILITY
280 define_bool USE_SYSLOG n
282 choice ' Log facility' \
283 "daemon CONFIG_DAEMON \
285 local0-7 CONFIG_LOCAL" daemon
286 if [ "$CONFIG_DAEMON" = "y" ]; then
287 define_macro LOG_FACILITY LOG_DAEMON
289 if [ "$CONFIG_USER" = "y" ]; then
290 define_macro LOG_FACILITY LOG_USER
292 int ' Which local facility (0-7)' INT_LOCAL
293 define_macro LOG_FACILITY LOG_LOCAL$INT_LOCAL
296 echo " Using log facility $LOG_FACILITY"
299 define_bool SYSLOG_KILL $SYSLOG_KILL
300 define_bool SYSLOG_SQUIT $SYSLOG_SQUIT
301 define_bool SYSLOG_CONNECT $SYSLOG_CONNECT
302 define_bool SYSLOG_OPER $SYSLOG_OPER
303 define_bool SYSLOG_USERS $SYSLOG_USERS
304 define_macro LOG_FACILITY $LOG_FACILITY
308 mainmenu_option next_comment
309 comment 'Configuration'
310 bool 'Use crypted passwords for operators' CRYPT_OPER_PASSWORD y
311 DUMMY=`echo "$BUFFERPOOL" | sed -e 's/[0-9]//g'`
312 if [ "$DUMMY" != "" ]; then
315 if [ "$HUB" = "y" ]; then
316 int 'Max size of the total of of all sendqs (bytes)' BUFFERPOOL 27000000
318 int 'Max size of the total of of all sendqs (bytes)' BUFFERPOOL 9000000
320 int 'Max receive queue for clients (bytes)' CLIENT_FLOOD 1024
321 int 'Maximum number of network connections (23 - (FD_SETSIZE-4))' MAXCONNECTIONS 252
322 int 'Default port for connections to other servers' SERVER_PORT 4400
323 int 'Nickname history length' NICKNAMEHISTORYLENGTH 800
324 bool 'Do you want to use R: lines in your configuration file' R_LINES
325 if [ "$R_LINES" = "y" ]; then
326 bool 'Process R: lines every rehash' R_LINES_REHASH y
327 bool 'Process R: lines always' R_LINES_OFTEN
329 define_bool R_LINES_REHASH $R_LINES_REHASH
330 define_bool R_LINES_OFTEN $R_LINES_OFTEN
332 bool 'Do you want support for the old I:*:ONE:*:: construct (read help text!)' USEONE n
333 bool 'Send a short message instead of the MOTD to connecting clients' NODEFAULTMOTD y
334 bool 'Kill connecting clients when forward and reverse DNS mismatch' KILL_IPMISMATCH n
337 mainmenu_option next_comment
338 comment 'Oper commands'
339 bool 'Allow (local) Opers to see all local invisible users' SHOW_INVISIBLE_USERS y
340 if [ "$SHOW_INVISIBLE_USERS" = "y" ]; then
341 bool 'Allow Opers to see all invisible users' SHOW_ALL_INVISIBLE_USERS y
343 bool 'Allow global Opers (O:) to see inside secret channels' OPERS_SEE_IN_SECRET_CHANNELS y
344 if [ "$OPERS_SEE_IN_SECRET_CHANNELS" = "y" ]; then
345 bool 'Allow local Opers (o:) to see inside secret channels' LOCOP_SEE_IN_SECRET_CHANNELS n
347 bool 'Do not truncate obnoxiously long /who output for opers' UNLIMIT_OPER_QUERY
348 bool 'Allow Opers to use the KILL command' OPER_KILL y
349 bool 'Allow Opers to use the REHASH command' OPER_REHASH y
350 bool 'Allow Opers to use the RESTART command' OPER_RESTART y
351 bool 'Allow Opers to use the DIE command' OPER_DIE y
352 bool 'Allow Opers to add local G-lines' OPER_LGLINE y
353 bool 'Allow Opers to connect from a remote site' OPER_REMOTE y
354 bool 'Allow local opers to use the REHASH command' LOCOP_REHASH y
355 bool 'Allow local opers to use the RESTART command' LOCOP_RESTART
356 bool 'Allow local opers to use the DIE command' LOCOP_DIE
357 bool 'Allow local opers to add local G-lines' LOCOP_LGLINE y
358 bool 'Allow local/global opers to be on any number of channels' OPER_NO_CHAN_LIMIT y
359 bool 'Allow local/global opers to set modes on local channels' OPER_MODE_LCHAN y
360 bool 'Allow local/global opers to walk through local channels modes' OPER_WALK_THROUGH_LMODES n
361 bool 'Prevent local/global opers from being kicked or deoped on local channels' NO_OPER_DEOP_LCHAN n
365 mainmenu_option next_comment
366 comment 'Server characteristics'
367 bool 'Do you want to have a default LIST parameter' CONFIG_LIST y
368 if [ "$CONFIG_LIST" = "y" ]; then
369 string 'Give default LIST parameter' DEFAULT_LIST 'T<10'
370 define_string DEFAULT_LIST_PARAM "$DEFAULT_LIST"
372 define_string DEFAULT_LIST "$DEFAULT_LIST"
373 define_bool DEFAULT_LIST_PARAM n
375 bool 'K: line comments treated as a file by default' COMMENT_IS_FILE y
376 bool 'Only nullify idle-time on PRIVMSG' IDLE_FROM_MSG y
379 mainmenu_option next_comment
380 comment 'Mandatory defines (you should leave these untouched)'
381 int 'Max auto connects per class (1!)' MAXIMUM_LINKS 1
382 if [ "$OPER_KILL" = "y" ]; then
383 bool 'Only allow KILLs of local clients' LOCAL_KILL_ONLY
385 define_bool LOCAL_KILL_ONLY $LOCAL_KILL_ONLY
387 int 'KILL nick chase time limit (30)' KILLCHASETIMELIMIT 30
388 int 'Max number of channels per user (recommended: 10)' MAXCHANNELSPERUSER 10
389 int 'Max number of silence masks (15!)' MAXSILES 15
390 int 'Expected average banmask length (40!)' AVBANLEN 40
391 eval define_macro MAXSILELENGTH \'\($AVBANLEN * MAXSILES\)\'
392 echo '* These are default values, used for class 0:'
393 int 'Max server idle time (60)' TIMESEC 60
394 int 'Class 0 ping frequency (120)' PINGFREQUENCY 120
395 int 'Class 0 connect frequency (600)' CONNECTFREQUENCY 600
396 int 'Min time before a link is good (300)' HANGONGOODLINK 300
397 int 'Wait before reconnecting to good link (10!)' HANGONRETRYDELAY 10
398 int 'connect(2) timeout (90!)' CONNECTTIMEOUT 90
399 int 'Max send queue (40000)' DEFAULTMAXSENDQLENGTH 40000
402 mainmenu_option next_comment
403 comment 'Experimental options (Do you know what you'\''re doing?)'
404 bool 'Use new MODE implementation' CONFIG_NEW_MODE y
405 bool 'Use new oper commands (JUPE, CLEARMODE, OPMODE, GLINE)' CONFIG_OPERCMDS y