# @configure_input@ # # By Carlo Wood (carlo@runaway.xs4all.nl) # # For a description of the syntax of this configuration file, # see the config/Configure script. # # TO CONFIGURE THE SERVER, TYPE: 'make config' in the top level directory ! # #### Start of system configuration section. #### prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ mandir=@mandir@ CC_DEFAULT="@CC@" CFLAGS_DEFAULT="@CFLAGS@" CPPFLAGS_DEFAULT="@CPPFLAGS@" LDFLAGS_DEFAULT="@LDFLAGS@" LIBS="@LIBS@" ac_cv_header_poll_h=@ac_cv_header_poll_h@ unet_cv_func_poll_syscall=@unet_cv_func_poll_syscall@ ac_cv_header_syslog_h=@ac_cv_header_syslog_h@ #### End of system configuration section. #### if [ -z "$CONFIG_BATCH" ]; then echo "**************************************************************************" echo "Error: Please run 'make config' that resides in the top level directory!" echo "**************************************************************************" exit -1 fi mainmenu_name "Undernet IRC Daemon Configuration" mainmenu_option next_comment if [ "$CONFIG_BATCH" = "n" ]; then echo "* Welcome to the Undernet IRC Daemon Configuration script." echo "* You can restart this configuration at any time by typing 'make config'." echo "* If you need help with your decision on any question, type a '?'" echo "*" USE_DEFAULT=n else USE_DEFAULT=C fi CHANGE_CONFIG=n if [ "$DEFAULTS" != "none" ]; then bool 'Do you want to change your previous configuration' CHANGE_CONFIG if [ "$CHANGE_CONFIG" = "n" ]; then echo "Ok, I will only prompt you for NEW parameters." USE_DEFAULT=C else USE_DEFAULT=n fi else USE_DEFAULT=n fi endmenu mainmenu_option next_comment comment 'Debugging (do not define this on production servers)' bool 'Do you want to enable debugging output' DEBUGMODE bool 'Do you want to enable asserts and memory allocation checking' CONFIG_NDEBUG EXTRA_CPPFLAGS="" if [ "$CONFIG_NDEBUG" = "n" ]; then if [ -z "$EXTRA_CPPFLAGS" ]; then EXTRA_CPPFLAGS="-DNDEBUG" else EXTRA_CPPFLAGS="-DNDEBUG $EXTRA_CPPFLAGS" fi fi bool 'Are you testing on a host without DNS' NODNS endmenu mainmenu_option next_comment comment 'Compile stuff' if [ "$prefix" = "NONE" ]; then prefix=/usr/local fi if [ "$exec_prefix" = "NONE" ]; then eval exec_prefix="$prefix" fi string 'Which compiler do you want to use' CC "$CC_DEFAULT" echo "* For the following four questions, specify 'none' when you want it to be empty." if [ -z "$cflags_O3_remark" -a -n "$CFLAGS" ]; then CFLAGS_DEFAULT=`echo "$CFLAGS" | sed -e 's%-O2%-O3%'` if [ "$CFLAGS_DEFAULT" != "$CFLAGS" ]; then echo "You are highly advised to use -O3 instead of -O2 if you're short in cpu cycles!" echo "Please read documentation (press '?'):" CFLAGS= fi fi eval string "'What flags should I pass to $CC [none]'" CFLAGS "'$CFLAGS_DEFAULT'" define_macro cflags_O3_remark done string 'Do you need extra include directories [none]' EXTRA_INCLUDEDIRS none if [ -z "$LDFLAGS_DEFAULT" ]; then LDFLAGS_DEFAULT=none else eval LDFLAGS_DEFAULT="$LDFLAGS_DEFAULT" fi string 'Which linker flags do you need [none]' LDFLAGS "$LDFLAGS_DEFAULT" if [ -z "$LIBS" ]; then LIBS=none fi string 'Which extra libraries do you need [none]' IRCDLIBS "$LIBS" bool 'Generate debug symbols?' DEBUGSYMBOLS "y" bool 'Compile in profiling support (gcc and maybe SUNpro)?' IRCUPROFILE "n" unset ZSTEMP if [ "$DEBUGSYMBOLS" = "y" ] ; then ZSTEMP="-g" fi if [ "$IRCUPROFILE" = "y" ] ; then ZSTEMP="-pg $ZSTEMP" fi define_string DEBUGFLAGS "$ZSTEMP" eval bindir="$bindir" string 'In which directory should I install the ircd binary' BINDIR $bindir if [ ! -d "$BINDIR" ]; then echo "$BINDIR : No such directory" fi string 'What should the name of the installed symbolic link to the exectuable be' SYMLINK ircd string 'Which permissions do you want the binary to have' IRCDMODE 711 string 'Which owner do you want the binary to have' IRCDOWN "`id | sed -e 's/.*uid=[0-9]*(//' -e 's/).*//' 2> /dev/null`" string 'Which group do you want the binary to have' IRCDGRP "`id | sed -e 's/.*gid=[0-9]*(//' -e 's/).*//' 2> /dev/null`" eval mandir=$mandir string 'Where should I install the man page' MANDIR $mandir if [ "$CFLAGS" = "none" ]; then CFLAGS="" fi if [ "$EXTRA_INCLUDEDIRS" = "none" ]; then EXTRA_INCLUDEDIRS="" fi if [ "$LDFLAGS" = "none" ]; then LDFLAGS="" fi if [ "$IRCDLIBS" = "none" ]; then IRCDLIBS="" fi if [ -n "$EXTRA_INCLUDEDIRS" ]; then for i in $EXTRA_INCLUDEDIRS; do if [ -z "$EXTRA_CPPFLAGS" ]; then EXTRA_CPPFLAGS=-I$i else EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS -I$i" fi done fi if [ -z "$EXTRA_CPPFLAGS" ]; then CPPFLAGS="-I../include -I../config" else CPPFLAGS="-I../include -I../config $EXTRA_CPPFLAGS" fi echo "EXTRA_CPPFLAGS=\"$EXTRA_CPPFLAGS\"" >>$CONFIG echo "CPPFLAGS=\"$CPPFLAGS\"" >>$CONFIG bool 'Use inlining for a few crucial functions' FORCEINLINE y endmenu if [ "$ac_cv_header_poll_h" = "yes" ]; then if [ "$unet_cv_func_poll_syscall" = "yes" ]; then define_bool USE_POLL y else mainmenu_option next_comment comment 'Operating System specific defines.' bool 'You have poll(), but do you want to use it' USE_POLL n endmenu fi fi mainmenu_option next_comment comment 'Host specific defines' if [ -f /etc/resolv.conf ]; then DOMAINNAME_DEFAULT="`awk '/^domain/ { print $2; exit }' /etc/resolv.conf`" fi string 'What is the domain name of your network' DOMAINNAME $DOMAINNAME_DEFAULT if [ -z "$DOMAINNAME" ]; then DOMAINNAME=none fi string 'Please give a random seed of eight characters' RANDOM_SEED 12345678 bool 'Does your host have a reliable clock' RELIABLE_CLOCK endmenu mainmenu_option next_comment comment 'General defines' bool 'Do you want the daemon set its own uid/gid (say yes for chroot!)' CONFIG_SETUGID if [ "$CONFIG_SETUGID" = "y" ]; then int ' UID of irc daemon' IRC_UID int ' GID of irc daemon' IRC_GID bool ' Change root ('/') after start of daemon' CHROOTDIR else define_bool CHROOTDIR n define_int IRC_UID $IRC_UID define_int IRC_GID $IRC_GID bool 'Allow to specify configuration file on command line' CMDLINE_CONFIG if [ "$CMDLINE_CONFIG" = "y" ]; then echo " SECURITY: Then don't install the daemon SUID or SGID !" fi fi bool 'Do you need virtual hosting' VIRTUAL_HOST PREV_HUB=$HUB bool 'Will you connect to more then one server at a time' HUB if [ "$PREV_HUB" != "$HUB" ]; then BUFFERPOOL= fi endmenu mainmenu_option next_comment comment 'Paths and files' eval DPATH_DEFAULT="${prefix}/lib/ircd" string 'Directory where all ircd stuff resides' DPATH $DPATH_DEFAULT if [ "$CHROOTDIR" = "y" ] ; then define_string SPATH "/$SYMLINK" else define_string SPATH "$BINDIR/$SYMLINK" fi echo "The following filenames are either full paths or files within DPATH" string 'Server configuration file' CPATH 'ircd.conf' string 'Server MOTD file' MPATH 'ircd.motd' string 'Server remote MOTD file (3 lines max)' RPATH 'remote.motd' if [ "$DEBUGMODE" = "y" ]; then string 'Debug file if DEBUGMODE' LPATH '/tmp/ircd.log' else define_string LPATH "$LPATH" fi string 'File for server pid' PPATH 'ircd.pid' endmenu mainmenu_option next_comment comment 'Logging (filenames are either full paths or files within DPATH)' bool 'Do you want to log the use of /WHO x% (recommended)' CONFIG_LOG_WHOX y if [ "$CONFIG_LOG_WHOX" = "y" ]; then string ' Give the path and(or) filename of this log file' WPATH 'whox.log' fi 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' BADCHAN=y bool 'Do you want to enable Bad Channel G-lines' BADCHAN y if [ "$BADCHAN" = "y" ]; then echo " " echo " WARNING DO _NOT_ USE LOCAL BADCHANNEL GLINES ON UNDERNET" echo " Use of LOCAL BAD Channel G-Lines can be cause for REMOVAL" bool 'Allow LOCAL BAD Channel G-lines' LOCAL_BADCHAN fi bool 'Do you want to log G-lines to a separate file' CONFIG_LOG_GLINES if [ "$CONFIG_LOG_GLINES" = "y" ]; then string ' Give the path and(or) filename of this log file' GPATH 'gline.log' fi bool 'Do you want to log JUPEs to a separate file' CONFIG_LOG_JUPES y if [ "$CONFIG_LOG_JUPES" = "y" ]; then string ' Give the path and(or) filename of this log file' JPATH 'jupe.log' fi bool 'Do you want to log OPMODEs and CLEARMODEs to a separate file' CONFIG_LOG_OPMODES y if [ "$CONFIG_LOG_OPMODES" = "y" ]; then string ' Give the path and(or) filename of this log file' OPATH 'opmode.log' fi bool 'Do you want to log connecting users to a separate file' CONFIG_LOG_USERS if [ "$CONFIG_LOG_USERS" = "y" ]; then string ' Give the path and(or) filename of this log file' FNAME_USERLOG users.log fi bool 'Do you want to log Opers to a separate file' CONFIG_LOG_OPERS if [ "$CONFIG_LOG_OPERS" = "y" ]; then string ' Give the path and(or) filename of this log file' FNAME_OPERLOG opers.log fi if [ "$ac_cv_header_syslog_h" = "yes" ]; then bool 'Do you want to use syslog' USE_SYSLOG else USE_SYSLOG=n fi if [ "$USE_SYSLOG" = "y" ]; then bool ' Log all operator kills to syslog' SYSLOG_KILL bool ' Log all remote squits for all servers to syslog' SYSLOG_SQUIT bool ' Log remote connect messages for other all servs' SYSLOG_CONNECT bool ' Log all users who successfully become an Oper' SYSLOG_OPER bool ' Send userlog stuff to syslog' SYSLOG_USERS if [ "$SYSLOG_KILL" = "n" -a "$SYSLOG_SQUIT" = "n" -a \ "$SYSLOG_CONNECT" = "n" -a "$SYSLOG_OPER" = "n" -a \ "$SYSLOG_USERS" = "n" ]; then define_macro LOG_FACILITY $LOG_FACILITY define_bool USE_SYSLOG n else choice ' Log facility' \ "daemon CONFIG_DAEMON \ user CONFIG_USER \ local0-7 CONFIG_LOCAL" daemon if [ "$CONFIG_DAEMON" = "y" ]; then define_macro LOG_FACILITY LOG_DAEMON else if [ "$CONFIG_USER" = "y" ]; then define_macro LOG_FACILITY LOG_USER else int ' Which local facility (0-7)' INT_LOCAL define_macro LOG_FACILITY LOG_LOCAL$INT_LOCAL fi fi echo " Using log facility $LOG_FACILITY" fi else define_bool SYSLOG_KILL $SYSLOG_KILL define_bool SYSLOG_SQUIT $SYSLOG_SQUIT define_bool SYSLOG_CONNECT $SYSLOG_CONNECT define_bool SYSLOG_OPER $SYSLOG_OPER define_bool SYSLOG_USERS $SYSLOG_USERS define_macro LOG_FACILITY $LOG_FACILITY fi endmenu mainmenu_option next_comment comment 'Configuration' bool 'Use crypted passwords for operators' CRYPT_OPER_PASSWORD y DUMMY=`echo "$BUFFERPOOL" | sed -e 's/[0-9]//g'` if [ "$DUMMY" != "" ]; then BUFFERPOOL= fi if [ "$HUB" = "y" ]; then int 'Max size of the total of of all sendqs (bytes)' BUFFERPOOL 27000000 else int 'Max size of the total of of all sendqs (bytes)' BUFFERPOOL 9000000 fi bool 'Aggressively empty the sendqpool (Read Help!)' HAS_FERGUSON_FLUSHER n int 'Max receive queue for clients (bytes)' CLIENT_FLOOD 1024 int 'Maximum number of network connections (23 - (FD_SETSIZE-4))' MAXCONNECTIONS 252 int 'Default port for connections to other servers' SERVER_PORT 4400 int 'Nickname history length' NICKNAMEHISTORYLENGTH 800 bool 'Do you want to use R: lines in your configuration file' R_LINES if [ "$R_LINES" = "y" ]; then bool 'Process R: lines every rehash' R_LINES_REHASH y bool 'Process R: lines always' R_LINES_OFTEN else define_bool R_LINES_REHASH $R_LINES_REHASH define_bool R_LINES_OFTEN $R_LINES_OFTEN fi bool 'Send a short message instead of the MOTD to connecting clients' NODEFAULTMOTD y bool 'Kill connecting clients when forward and reverse DNS mismatch' KILL_IPMISMATCH n endmenu mainmenu_option next_comment comment 'Oper commands' bool 'Allow (local) Opers to see all local invisible users' SHOW_INVISIBLE_USERS y if [ "$SHOW_INVISIBLE_USERS" = "y" ]; then bool 'Allow Opers to see all invisible users' SHOW_ALL_INVISIBLE_USERS y fi bool 'Allow global Opers (O:) to see inside secret channels' OPERS_SEE_IN_SECRET_CHANNELS y if [ "$OPERS_SEE_IN_SECRET_CHANNELS" = "y" ]; then bool 'Allow local Opers (o:) to see inside secret channels' LOCOP_SEE_IN_SECRET_CHANNELS n fi bool 'Do not truncate obnoxiously long /who output for opers' UNLIMIT_OPER_QUERY bool 'Allow Opers to use the KILL command' OPER_KILL y bool 'Allow Opers to use the REHASH command' OPER_REHASH y bool 'Allow Opers to use the RESTART command' OPER_RESTART y bool 'Allow Opers to use the DIE command' OPER_DIE y bool 'Allow Opers to add local G-lines' OPER_LGLINE y bool 'Allow Opers to connect from a remote site' OPER_REMOTE y bool 'Allow local opers to use the REHASH command' LOCOP_REHASH y bool 'Allow local opers to use the RESTART command' LOCOP_RESTART bool 'Allow local opers to use the DIE command' LOCOP_DIE bool 'Allow local opers to add local G-lines' LOCOP_LGLINE y bool 'Allow local/global opers to be on any number of channels' OPER_NO_CHAN_LIMIT y bool 'Allow local/global opers to set modes on local channels' OPER_MODE_LCHAN y bool 'Allow local/global opers to walk through local channels modes' OPER_WALK_THROUGH_LMODES n bool 'Prevent local/global opers from being kicked or deoped on local channels' NO_OPER_DEOP_LCHAN n endmenu mainmenu_option next_comment comment 'Server characteristics' bool 'Do you want to have a default LIST parameter' CONFIG_LIST y if [ "$CONFIG_LIST" = "y" ]; then string 'Give default LIST parameter' DEFAULT_LIST 'T<10' define_string DEFAULT_LIST_PARAM "$DEFAULT_LIST" else define_string DEFAULT_LIST "$DEFAULT_LIST" define_bool DEFAULT_LIST_PARAM n fi bool 'K: line comments treated as a file by default' COMMENT_IS_FILE y bool 'Only nullify idle-time on PRIVMSG' IDLE_FROM_MSG y endmenu mainmenu_option next_comment comment 'Mandatory defines (you should leave these untouched)' int 'Max auto connects per class (1!)' MAXIMUM_LINKS 1 if [ "$OPER_KILL" = "y" ]; then bool 'Only allow KILLs of local clients' LOCAL_KILL_ONLY else define_bool LOCAL_KILL_ONLY $LOCAL_KILL_ONLY fi int 'KILL nick chase time limit (30)' KILLCHASETIMELIMIT 30 int 'Max number of channels per user' MAXCHANNELSPERUSER 10 int 'Max number of silence masks (15!)' MAXSILES 15 int 'Expected average banmask length (40!)' AVBANLEN 40 eval define_macro MAXSILELENGTH \'\($AVBANLEN * MAXSILES\)\' echo '* These are default values, used for class 0:' int 'Max server idle time (60)' TIMESEC 60 int 'Class 0 ping frequency (120)' PINGFREQUENCY 120 int 'Class 0 connect frequency (600)' CONNECTFREQUENCY 600 int 'Min time before a link is good (300)' HANGONGOODLINK 300 int 'Wait before reconnecting to good link (10!)' HANGONRETRYDELAY 10 int 'connect(2) timeout (90!)' CONNECTTIMEOUT 90 int 'Max send queue (40000)' DEFAULTMAXSENDQLENGTH 40000 endmenu mainmenu_option next_comment comment 'Experimental options (Do you know what you'\''re doing?)' bool 'Use new MODE implementation' CONFIG_NEW_MODE y bool 'Use new oper commands (JUPE, CLEARMODE, OPMODE, GLINE)' CONFIG_OPERCMDS y endmenu