File: Configure.help

package info (click to toggle)
ircd 2.10.02-1
  • links: PTS
  • area: main
  • in suites: hamm
  • size: 2,228 kB
  • ctags: 2,087
  • sloc: ansic: 29,122; makefile: 664; sh: 307; perl: 18
file content (955 lines) | stat: -rw-r--r-- 47,929 bytes parent folder | download
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
# Format of this file: description<nl>variable<nl>helptext<nl><nl>.
# If the question being documented is of type "choice", we list
# only the first occurring config variable. The help texts
# must not contain empty lines. No variable should occur twice; if it
# does, only the first occurrence will be used by Configure. The lines
# in a help text should be indented two positions. Lines starting with
# `#' are ignored. Limit your lines to 78 characters.
#
# If you add a help text to this file, please try to be as gentle as
# possible. Don't use unexplained acronyms and generally write for the
# hypothetical admin who has just downloaded ircu for the first time.
# Tell them what to do if they're unsure. Technical information
# should go in a README in the Documentation directory. Mention all
# the relevant READMEs and HOWTOs in the help text.
#
# All this was shamelessly stolen from several different sources. Many
# thanks to all the contributors. The texts are copyrighted # (c) 1997
# by Carlo Wood and governed by the GNU Public License.
#

Do you want to change your previous configuration
CHANGE_CONFIG
  You will be presented a series of questions that you have to answer
  in order to configure the IRC daemon, prior to compilation.
  If you went through this before, then your choices have been stored
  in a file '.config'.  If you want to use the same stored configuration
  now, specify 'n'; this will quickly skip through all questions that
  you already answered previously, only prompting you for NEW questions.
  Note that NEW questions only can occur when you just upgraded to a
  new version.  Note also that if you abort by pressing ^C (control-C)
  anywhere, then all answers are lost; you must finish it before the
  answers are stored.
  Pressing a 'c' (followed by a return) on any question will Continue
  the script in "use_defaults mode", that means that it will take all
  default values unless it finds a NEW question (like when you specify
  a 'n' here).
  If you are unsure, or if you want to change a previously entered
  configuration, specify 'y'.

Which compiler do want to use
CC
  Here you need to specify the C compiler you want to use.
  Using 'gcc' is highly recommended, you might even want to install it
  on your machine first.  Note that you can specify the full path if you
  are not sure if the compiler is in your PATH (or whether or not the right
  compiler will be used).  An example is: "/usr/ucb/cc".
  The package needs an ANSI compiler.  Some compilers need an extra option
  to compile ANSI C.  In those cases you can add these options also here.
  For example, on a HPUX-8.x you would use (if you don't have gcc):
  "cc -Aa -D_HPUX_SOURCE".
  Note that you should not use quotes.

What flags should I pass to $CC
CFLAGS
  These are the compiler flags, used for CC when compiling.
  If you are not using gcc, it might be possible that your compile is not
  supporting -g and -O at the same time.  The -g option is necessary to be
  able to debug the daemon in the case it contains a bug that makes the
  ircd core dump.  Unless you use a version that is proven to be VERY stable,
  it is highly recommended to use this option.  All Undernet production servers
  are expected to use it in order to help coder-com to track down bugs.
  The -O will optimize the code - it also makes debugging harder.
  If you are not running a production server you should remove the -O.
  Ircd developers can optionally use more options to turn on extra warnings.
  Developers (which are using gcc of course ;), should use:
  "-g -Wall -pedantic -DGODMODE"
  Note that you should not use quotes.
  Note that the server uses several non-ANSI (though POSIX.1) function calls.

Do you need extra include directories
EXTRA_INCLUDEDIRS
  If your compiler needs extra include directories, you can specify them
  here as a space separated list of directories.  Do not use quotes and do
  not specify the '-I' prefix.  Usually you don't have to specify any
  extra include directory, in that case you should specify "none" here.
  If unsure, try "none" (without quotes) and see if all the 'include'
  header files are found during compilation.

Which linker flags do you need
LDFLAGS
  Here you can specify extra flags that will be passed to the linker.
  Usually you will not need to pass any flags and you can therefore
  specify "none" here (without the quotes).
  SunOS users may want to add "-Bstatic" (but only if you need it).
  You can also specify any "-L..." flags here if you need those for
  extra libraries.

Which extra libraries do you need
IRCDLIBS
  Some Operating Systems need linking with extra libraries for some of the
  functions used by the daemon.  In some cases, it is not known which
  libraries are needed, even when the Operating System is known.  This is
  for instance the case with SunOS, some need -lresolv, while others don't.
  If you forget to add a library then this will result in 'undefined variables'
  during linking.  If you do not know which library to add, it might be
  helpful to use the unix command `nm', which lists the variables of a
  library.  For instance, if you get "unknown variable '_res_mkquery'", and you
  wonder if this is in /usr/lib/libresolv.so, you can do:
  nm /usr/lib/libresolv.so | grep res_mkquery
  Do not use the leading '_' in the grep, this underscore is added by the
  assembler but is not part of the original variable name and does not show
  up in the output of nm.
  Most libraries are in /lib or /usr/lib, which are scanned by default. In
  some cases you will need to tell the linker where to search for a library.
  You can do this by adding an -L... option to IRCDLIBS.  For instance:
  "-L/usr/ucblib -lucb" will look for 'libucb.so' in /usr/ucblib too.
  Here is a list of what you MAYBE need to specify depending on your
  Operating System:
  OS			Specify here
  NeXT != 2.0		-lsys_s
  Dynix/ptx		-lsocket -linet -lnsl -lseq
  Dell SVR4		-lsocket -lnsl -lucb
  All others		Default provided by autoconf
  If unsure use the default provided by autoconf.

Where should I install the ircd binary
BINDIR
  After compilation (by typing 'make'), you can install the server with
  the command 'make install'.  This will install the ircd in the directory
  you specify here.  The package tries to use a meaningful name by calling
  the binary "ircd.<tag>", where <tag> is the name of the last patch that
  was applied by the maintainer.  A symbolic link (to be specified next)
  will be used to point to this binary.  This allows a /RESTART to
  immediately start the new version, while keeping the old binary.
  Note that you need to have write permissions in this directory during
  the install.  Please re-check the permissions/owner and group after
  installation.

What should the name of the installed symbolic link to the executable be
SYMLINK
  'make install' installs the binary with an unique name, however it makes
  a symbolic link to this newly installed executable which always has the
  same name, so you can use /RESTART and/or use this name in scripts that
  automatically restart the ircd after a reboot or crash.
  Here you can specify the name of that symbolic link.  Note that it may
  not contain a '/'; it is just the name if the symbolic link and will be
  installed in BINDIR.

Which permissions do you want the binary to have
IRCDMODE
  Here you need to specify the octal file mode of the ircd binary.
  Recommended is 711 - but you might need setuid or something.
  Note that using a setuid and starting the daemon as another user
  does prohibit the daemon from core dumping in case of a crash on some
  Operating Systems.

Which owner do you want the binary to have
IRCDOWN
This will be the owner of the ircd binary after installation.

Which group do you want the binary to have
IRCDGRP
This will be the group of the ircd binary after installation.

Where should I install the man page
MANDIR
  This is the base directory where the manual page of the ircd is installed.
  If you are not root on your system, you can change it to your personal
  manpath directory (which of course should be in your MANPATH environment
  variable then).

You have poll(), but do you want to use it
USE_POLL
  Some Operating Systems implement select() by calling poll(), others
  implement poll() by calling select().  The best performance will be
  achieved by calling the lowest (sys)call ourselves of course.
  The Undernet Daemon allows you to use select() or poll().
  If you specify 'y' here, the daemon will use poll() directly, otherwise
  it will use select().  If you don't know what your Operating System
  uses as syscall, you can compile the server with USE_POLL and detach
  the running process with 'strace -p <pid>', 'truss -p <pid>' or
  'trace -p <pid>' depending on your Operating System, these UNIX commands
  will show you the syscalls and therefore show if you use poll() or select().
  The advantage of using poll() is that you are not bothered by the limits
  of select() and fd_set size (ie, the number of clients that connect).
  The following Operating Systems seem to use poll():
  Solaris 2.x, SunOS 4.x, AIX, Digital UNIX, and NetBSD.
  The following Operating Systems use select():
  linux-2.0.x.
  If unsure specify 'n'.

What is the domain name of your network
DOMAINNAME
  This define allows you to specify what you consider to be 'local'.
  It is only used for statistics.  When you issue the IRC command /stats w,
  the server will respond with statistics of how many clients have been
  connecting to your server in the last minute, hour and day.  It will
  give these statistics for all connections (including the servers), all
  clients (form anywhere) and also for clients whose hostname ends on
  the domain you specify here.  So if you are an ISP and you want to know
  specifically the client load from your own domain, specify that domain
  here.  If you are unsure what to do, then it isn't really important what
  you give here, just don't give an empty string.  A good guess is the last
  two parts of your own hostname (ie, if your hostname is foo.bar.nowhere.org,
  specify 'nowhere.org').  Note that the string you give should NOT start
  with a '.' and you should not use quotes.

Please give a random seed of eight characters
RANDOM_SEED
  You should specify exactly eight characters (0-9A-Za-z) here.  Do not use
  quotes or any other special characters.  This value is used to initialize
  the random generator of the server which is used to generate PING/PONG
  cookies in order to stop spoofing IP-numbers (a PING with a random number is
  sent to this IP-number and if the client doesn't respond with the
  exact same number, access is denied).  In order to make the random
  number impossible to guess, it is important that you use your own random
  seed here.

Does your host have a reliable clock
RELIABLE_CLOCK
  You should really ONLY specify 'y' here when your system clock is
  stable and accurate at all times (within a few seconds).
  If you are running ntpdate on a regular basis, or an equivalent
  like xntpd, to keep your system clock synchronized over the network,
  then you might have an accurate clock.  However, this is not guaranteed,
  for example, it is known that xntpd gives unstable results on linux
  in some cases.  Note that an unstable clock is worse then an clock that
  has a constant offset, because the servers attempt to correct for a
  constant offset, but do not correct jumps of your system clock !
  In general you SHOULD be running ntpdate or equivalent AND make sure it
  works when you run a production server on Undernet.  Otherwise leave
  your clock alone and specify 'n' here.
  If unsure specify 'n' !

Change root (/) after start of daemon
CHROOTDIR
  If you are a security freak and you want to the daemon to run in
  it own environment, then you can specify 'y' here.  The daemon will
  change '/' to 'DPATH' (which you will have to specify later).
  If this confuses you or if you are uncertain, specify 'n'.

Do you want the daemon set its own uid/gid
CONFIG_SETUGID
  If you specify 'y' here, then the daemon will attempt to set its
  User ID (uid) and Group ID (gid) to the numeric values that you will
  have to specify next.  This only makes sense if you (have to) start
  the server as root.  The most secure operation of the server is to
  not use setuid stuff (here or by means of setting the file mode)
  and to run the server as a special user only (ie 'irc').  Of course
  this user must have access to all log and configuration files.
  Note that using a setuid and starting the daemon as another user
  does prohibit the daemon from core dumping in case of a crash on some
  Operating Systems.
  This option is actually only necessary when you use the Change Root
  option, because otherwise you can use the file mode to set the uid
  and gid.  Note that the server refuses to run as root.
  If unsure, specify 'n'.

UID of irc daemon
IRC_UID
  Ok, if you insist on using this option: Here you must specify the
  numeric value of the uid that you want the server to run as.
  Note that you need to look in the right /etc/passwd file, which isn't
  the same file when you used the Change Root option.

GID of irc daemon
IRC_GID
  Ok, if you insist on using this option: Here you must specify the
  numeric value of the gid that you want the server to run as.
  Note that you need to look in the right /etc/group file, which isn't
  the same file when you used the Change Root option.

Allow to specify configuration file on command line
CMDLINE_CONFIG
  If you specify 'y' here, you will be allowed to specify the ircd.conf
  path (the ircd daemon configuration file) on the command line when
  starting the daemon (with the -f <ircd.conf file> option).
  Note that defining this and installing ircd SUID or SGID is a MAJOR
  security problem - they can use the '-f' option to read any files
  that the 'new' access lets them.  Note also that defining this is
  a major security hole if other users have accounts on the same machine;
  when your ircd goes down and some other user starts up the server with
  a new conf file that has some extra O-lines.  So don't use this unless
  you're debugging.

Set up a Unix domain socket to connect clients/servers
UNIXPORT
  If there are lots of users having an account on the same machine
  (which is very unlikely because the server needs all cpu ;), then
  using a UNIX domain socket to connect these clients to is more
  efficient then letting them connect via TCP/IP.  A UNIX domain
  socket is a special device that will be created in your File System.
  Your client must also support connecting to a UNIX domain socket.
  The name of the special device must be specified in the "ircd.conf"
  file by means of an extra 'P: line', see doc/example.conf for the
  syntax.
  If you don't have many IRC-ing users on the same host as the server,
  or when your local IRC client doesn't support UNIX domain sockets,
  specify 'n' here.  Otherwise specify 'y'.

Do you need virtual hosting
VIRTUAL_HOST
  This is only needed when you want to run two or more servers on the
  same machine and on the same port (but different devices).
  In general you will only need this if you have at least two ethernet
  cards in your machine with a different IP-number.
  If you specify 'y' here, then you can "bind" a server to one of your
  interfaces.  You should use the command line option '-w' to tell the
  server to which interface to bind to.  No error is reported if this
  fails, the server will simply not run.
  If no '-w' option is given then the server name specified in the
  'M: line' of the "ircd.conf" of the server is used, provided it
  resolves to an IP-number of one of your interfaces.  Note that
  normally the name does not have to resolve, but when you define this
  is MUST resolve or you must use the -w command line option, or the
  "bind" will fail.
  If you are unsure, specify 'n'.

Will you connect to more then one server at a time
HUB
  All servers of one IRC "network" are connected in a "tree" (no loops).
  Servers that are only connected to one other server (called the
  'uplink') are called "leafs", servers that are connected to more then
  one other server are called HUBs.
  If you specify 'n' here then your server will prevent itself to accidentally
  connect to two servers at once, which is good because this is generally
  bad for servers in "leaf" positions (they are net.wise located too bad
  to route traffic).  Note that on Undernet all newly linked server are
  linked as leafs during their test phase, and should specify 'n' here.

Do you want to enable debugging output
DEBUGMODE
  Sometimes things just don't work.  This doesn't have to be a crash,
  but it is also possible that your server just doesn't want to start
  at all, or disallows clients to connect at all, etc.
  With all such drastic and REPRODUCIBLE problems, it makes sense to
  recompile the server with this option set and then running the
  ircd (irc daemon) with the (extra) command line options: -t -x9
  This will make the server run in the foreground and write debug output
  to the terminal; in a lot of cases this can give a clue on what is
  wrong (although more often it doesn't).
  Because defining DEBUGMODE uses a LOT of cpu and is never useful
  unless you are debugging a reproducible test case, you should never
  specify 'y' here except for the reason just mentioned.
  You should certainly NEVER specify 'y' for a server that runs on a
  production net.

Do you want memory- allocation and/or leak checking
DEBUGMALLOC
  If you specify 'y' here, then the server will start to do book keeping
  on the allocated memory blocks.  This uses extra cpu and memory,
  so normally you do not want this - unless you are debugging.
  This option uses 8 bytes extra per allocated memory block.
  The main purpose of this option is to check if a call to free(2) is done
  with a valid pointer - if the pointer was not previously returned by
  malloc(2), calloc(2) or realloc(2), the server will core dump in a place
  that allows the maintainer to get an idea of what went wrong - but only
  when the server was compiled with the -g flag of course.
  You also need to specify 'y' here if you want to search for memory leaks.
  On a production server, specify 'n' - unless you have lots of cpu to
  spare and you volunteer to search for memory leaks - contact the
  maintainer in this case.
  If unsure, specify 'n'.

Do you want to have boundary checking
MEMMAGICNUMS
  One of the most nasty bugs are those where buffer overruns are involved.
  In an attempt to catch those in an early stage, this option will add
  so called "magic numbers" to the beginning and end of each allocated
  memory block.  When a block is freed or reallocated, the magic numbers
  are checked and the server core dumps when they were corrupted.
  This option uses 12 bytes extra per allocated memory block.
  It doesn't really use much extra cpu compared to defining DEBUGMALLOC, so
  you might as well specify 'y' here, just in case.  It only makes sense
  though if you compiled the server with compiler option '-g'.
  If unsure, specify 'n'.

Do you want memory leak testing (stats M)
MEMLEAKSTATS
  If you specify 'y' here then the server will start to do extra book keeping
  on the allocated memory blocks, counting the number of currently allocated
  blocks per source code location (file and line number).  You will be able
  to retrieve these statistics with the command /stats M.
  When there is a memory leak, then allocated memory blocks that were allocated
  under certain conditions are never freed (however the contents of those
  memory blocks are never used anymore); this would result in a (slow?) increase
  of the count of allocated memory blocks.  This option allows to find where
  these blocks were allocated which might give a clue on the memory leak problem.
  This option uses 4 bytes extra per allocated memory block.
  If you want to look for memory leaks, specify 'y' - otherwise specify 'n'.

Do you want extra info on allocated sizes
MEMSIZESTATS
  If you specify 'y' here then the server will start to do extra book keeping
  on the sizes of the allocated memory blocks.  /stats M will not only return
  the number of allocated blocks, but also the total number of allocated
  bytes involved.  If you defined MEMLEAKSTATS to look for memory leaks, it
  will give the total number of allocated memory per source code location
  (file and line number).
  This option uses 4 bytes extra per allocated memory block, unless you already
  specified 'y' for MEMMAGICNUMS (boundary checking), because in that case
  it was already included (and it doesn't matter what you specify here).
  I think you should specify 'y' here, its more fun to see the sizes :).

Do you want support for a time interval with /stats M
MEMTIMESTATS
  If you specify 'y' here then the server will start to do extra book keeping
  on the allocated memory blocks, storing the time at which the memory block
  was allocated.  This especially slows down /stats M (but unless you use
  that command frequently, it shouldn't really matter) and uses again 4 bytes
  of extra memory per allocated memory block.
  This option is especially useful if you are looking for memory leaks
  because it allows you to specify a time window with /stats M for which
  counted blocks must be returned.  This allows to ignore recently allocated
  blocks and permanently allocated blocks (since the start of the server).

Directory where all ircd stuff sits
DPATH
  DPATH is provided so that the other path names may be provided in just
  filename form.  It is the Default PATH.  When the server starts, it
  chdir's to DPATH before chroot or any other file operation, making
  it the "current directory" for the server.  This is where core files
  will go if the server core dumps.
  Note that you should not include quotes here.
  Note also that the command line option "-d <dir>" overrides the DPATH
  you give here, except for the chroot (if you use that).

Server configuration file
CPATH
  This is the IRC daemon Configuration filename, mostly called "ircd.conf".
  If you just specify the filename, the server will read its configuration
  file from the Default Path "DPATH", which you specified above.  However,
  you are also allowed to specify a full path.
  Note that you should not include quotes here.

Server MOTD file
MPATH
  MPATH is the filename, relative to DPATH, or the full path, of the
  "Message Of The Day" file; mostly called "ircd.motd".  The contents
  of this file will be sent to every client that connects to the server,
  after registration.
  Note that you should not include quotes here.

Server remote MOTD file (3 lines max)
RPATH
  RPATH is the filename, relative to DPATH, or the full path, of the
  "Remote Message Of The Day" file; mostly called "remote.motd".  The
  contents of this file will be sent to every remote client that issues
  a /MOTD <your server name>.  Only the first three lines are sent, so
  you might want to keep it that short ;).
  Note that you should not include quotes here.

File for server pid
PPATH
  PPATH is the filename, relative to DPATH, or the full path, of the
  "PID file", mostly called "ircd.pid".  It is used for storing the
  server's PID so a ps(1) isn't necessary.
  Note that you should not include quotes here.

Do you want to log G-lines to a separate file
CONFIG_LOG_GLINES
  Specify 'y' here if you want to log G-lines (Global access bans)
  to a local file.

Give the path and(or) filename of this log file
GPATH
  GPATH is the filename, relative to DPATH, or the full path, of the
  log file where the G-lines will be stored, mostly called "gline.log".
  Note that you should not include quotes here.

Do you want to log connecting users to a separate file
CONFIG_LOG_USERS
  Specify 'y' here if you want to log who is connecting to your server.
  This file can grow VERY fast on a large net work, so you probably
  want to specify 'n' here.

Give the path and(or) filename of this log file
FNAME_USERLOG
  Here you need to specify the name of the log file where the server
  should write the data about connecting users to.  Note that this file
  must exist, it won't be created.  You can also specify a full path.
  Note that you should not include quotes here.

Do you want to log Opers to a separate file
CONFIG_LOG_OPERS
  Specify 'y' here if you want to log who is successfully becoming an
  IRC Operator on your server.

Give the path and(or) filename of this log file
FNAME_OPERLOG
  Here you need to specify the name of the log file where the server
  should write the data about Opering users.  Note that this file
  must exist, it won't be created.  You can also specify a full path.
  Note that you should not include quotes here.

Do you want to use syslog
USE_SYSLOG
  If you are the sys admin of this machine, or if you have permission
  of the sys admin to do so, you can let the server write data about
  certain events to the syslog.  You will be prompted for the events
  that you want to log being one or more of: KILL's, SQUIT's, CONNECT's,
  OPERing, Connecting Users and finally the log facility.
  If you are unsure, specify 'n'.  It is probably not a good idea to use
  this on a large IRC net work.

Log all operator kills to syslog
SYSLOG_KILL
  Specify 'y' here if you want all KILLs to be written to syslog.
  Note that on a large IRC net work this is a LOT of data.

Log all remote squits for all servers to syslog
SYSLOG_SQUIT
  Specify 'y' here if you want all SQUITs to be written to syslog.
  Note that on a large IRC net work this is a LOT of data.

Log remote connect messages for other all servers
SYSLOG_CONNECT
  Specify 'y' here if you want all CONNECTs to be written to syslog.
  Note that on a large IRC net work this is a LOT of data.

Log all users who successfully become an Oper
SYSLOG_OPER
  Specify 'y' here if you want all OPERs to be written to syslog.
  Note that on a large IRC net work this is a LOT of data.

Send userlog stuff to syslog
SYSLOG_USERS
  Specify 'y' here if you want all connecting users to be written to syslog.
  Note that on a large IRC net work this is EXTREMELY MUCH data.
  You really want to specify 'n' here.

Log facility (daemon, user, local0-7)
CONFIG_DAEMON
  Well if you got this far and still need help, then I think you should
  go back and specify 'n' at the question "Do you want to use syslog".

Which local facility (0-7)
INT_LOCAL
  Well if you got this far and still need help, then I think you should
  go back and specify 'n' at the question "Do you want to use syslog".

Use m4 as a preprocessor on CPATH
M4_PREPROC
  If you use m4 macro's in your "ircd.conf" file, then you need to specify 'y',
  which will enable m4 preprocessing of the "ircd.conf" file.
  If you are unsure specify 'n'.  Note using m4 macros has often lead to
  problems (passwords or server names that match a macro name for instance),
  while the benefits of using m4 are highly doubtful.  Unless you are
  already a m4 wizard and insist on using it I recommend to specify 'n' here.

Use crypted passwords for N: lines
CRYPT_LINK_PASSWORD
  In order to allow other servers to connect to you, you need to specify
  two configuration lines in the "ircd.conf" configuration file (CPATH).
  Each of these lines contains a password; the C: line is used for connecting
  to a remote server and contains the password that is sent to the remote
  server for authentication, thus this password must be in plain text.
  The other is the N: line and contains the password that the remote server
  is sending to you.  For security reasons it is advised to store this
  password in DES encrypted form.  If you specify 'y' here, you will be
  allowed to use the DES encrypted password in the password field of the
  N: line, see doc/example.conf for more details.  Note that you should
  use *different* passwords in the C: and N: lines respectively for obvious
  reasons.

Use crypted passwords for operators
CRYPT_OPER_PASSWORD
  In order to allow certain users to become IRC OPERators, they must
  authenticate themselves with a password.  This password is matched
  against an 'O: line' in the "ircd.conf" configuration file, see
  doc/example.conf for more details.  If you specify 'y' here, you are
  allowed to use the DES encrypted form of these passwords in your
  "ircd.conf" file (even more, your Opers don't have to tell you their
  real password, they can provide the DES encrypted form themselves).
  Since it has happened often in the past that the "ircd.conf" file
  was compromised somehow, you are highly encouraged to specify 'y' here
  and use the DES encrypted form.  You can find a program 'mkpasswd' in
  the ircd/crypt directory that will allow you to generate the encrypted
  form.

Max amount of internal send buffering (bytes)
MAXSENDQLENGTH
  This is the default value of the "max. sendq length" of Y: line classes
  (see doc/example.conf for details on Y: lines).  You will probably
  always override this value in your "ircd.conf" with the Y: lines.
  However, it is this value that is used to determine the total amount
  of RAM that the server will allocate for buffering send queues.
  Therefore it is best if you specify here a value that is about the
  the maximum size of a sendQ that you expect, which will be depended
  on the size of the IRC net work (total number of clients).
  A good guess is:
  For HUBs : 150 bytes per client (20,000 clients -> 3,000,000 bytes)
  For Leafs: 150 bytes per local client (2,000 clients -> 600,000 bytes)

Max size of the total of all sendqs (multiply factor for MAXSENDQLENGTH)
INT_BUFFERPOOL
  This specifies the maximum amount of RAM that your server will allocate
  in RAM for buffering sendQ's.  Leafs can use a value as little as 3, while
  large HUBs need to specify a value as high as 6.  If you run out of memory,
  clients and/or servers are dropped with the error "Buffer allocation error".
  Then you will have to up this number (and/or install more RAM if appropriate).

Max receive queue for clients (bytes)
CLIENT_FLOOD
  Currently, everything that a client sends to a server is read by the server
  and stored in a buffer (the clients receive queue).  The server will
  process messages from this queue one by one (running over all clients
  each time).  When a client sends new messages faster they get processed,
  and the size of its receive buffer reaches this value, the client is
  dropped with the error "Excess flood".  A reasonable value is 1024 bytes.
  The maximum size is 8000 bytes.

Maximum number of network connections (23 - (FD_SETSIZE-4))
MAXCONNECTIONS
  This specifies the maximum number of network connections the server
  will use.  You also need some non-network connects (log files etc), so
  the maximum value is "FD_SETSIZE-4".  The minimum value is 23.
  The only benefit of using a small value is that your server uses less
  memory - but *only* when you really have a small (client) load.
  Routing server that hardly take clients can use 128 here for instance.
  Servers that are always full should just specify the maximum amount
  that still works (which might be less then FD_SETSIZE-4, some OS need
  kernel hacking to allow more then 1024 fds per process). The only max.
  value that is guaranteed to work is 252 ;).  Note that if the value of
  FD_SETSIZE is for instance 1024, then that doesn't mean you can't
  connect MORE clients - but in this case you certainly need kernel
  hacking.  Find an experienced admin with the same Operating System and
  ask him what the maximum is and how to achieve it.

Default client listen port
PORTNUM
  This is the default listen port.  You can specify more listen ports
  in the "ircd.conf" file with 'P: lines'; see doc/example.conf for more
  details on P: lines.  Note that /stats p currently only shows P: lines,
  which might be a reason for you to use a less often used value here.
  Note that there is actually no difference between client and server
  listen ports, but it is good practice to separate them for statistical
  purpose (bandwidth usage statistics).

Nickname history length
NICKNAMEHISTORYLENGTH
  This value specifies the length of the nick name history list, which
  is only used for /WHOWAS.  It uses about 300 to 400 bytes per entry.
  Note that at a net.break so many client disappear that the whole
  "whowas" list refreshed a few times (unless you make it as big as
  20,000 of course - but you shouldn't because thats a waste of ram
  and cpu).  A reasonable value is 'total number of clients' / 25.

Allow Opers to see (dis)connects of local clients
ALLOW_SNO_CONNEXIT
  If you specify 'y' here, you will be allowed to see all client connects and
  disconnects as a server notice.  The historical reason for adding this
  option was to detect clone bots that connected to your server.  However,
  on a large IRC network like Undernet, the number of clients that connect
  are so huge that it is not possible to keep an eye on this and everyone
  has been filtering these notices out anyway.  Next to that it turned out
  to use no less then 10% of the total cpu usage last time I measured it
  (this has been improved after that, but still).
  Unless you insist on seeing those notices you should specify 'n' here.
  Note that in the meantime Undernet has a LOT of other (semi- and fully-
  automated) ways to detect clone bots, which work a LOT better for this
  purpose.

Do you want to use R: lines in your configuration file
R_LINES
  If you specify 'y' here you will be allowed to use R:lines in the "ircd.conf".
  This allows more freedom in restricting connections to your server by
  calling an external program to determine whether to allow the connection.
  It also uses a lot of overhead however, and can bog things down, so you should
  consider whether you really need them, and if you can handle the extra load.
  If unsure, specify 'n'.

Process R: lines every rehash
R_LINES_REHASH
  You may not want to have the R: lines checks everywhere since this can
  cost a lot of time and delays.  If you specify 'y' here, then R: lines are
  checked whenever the "ircd.conf" file is reloaded (when the REHASH command
  is used, or a signal SIGHUP is received by the daemon).  This shouldn't be
  too much of a drain on the system if the R:lines programs are short.

Process R: lines always
R_LINES_OFTEN
  If you specify 'y' here then R: lines will be checked as often as K: lines.
  Note that this is -very- likely to cause a severe drain on your resources.
  Use at your own risk, specify 'n' unless your really sure.

Allow (local) Opers to see all local invisible users
SHOW_INVISIBLE_USERS
  If you specify 'y' here, then your (local) IRC Operators will be able to
  see all local invisible users (clients connected to your own server).
  The reason for this is to hunt for clone bots, make sure your Operators do
  not use this "feature" for spying on individuals and respect the user that
  wishes to be invisible (mostly meaning that they don't want to be found when
  on certain channels).
  Note: If you answer 'n' here, then you will also not be able to see remote
  invisible users (if you specify 'y' you will also get a configuration
  question that asks you to specify whether or not you want your Opers to see
  remote invisible users or not).

Allow Opers to see all invisible users
SHOW_ALL_INVISIBLE_USERS
  If you specify 'y' here, then your global IRC Operators (O:) will be able
  to see ALL invisible users.  The reason for this is to hunt for clone bots,
  make sure your Operators do not use this "feature" for spying on individuals
  and respect the user that wishes to be invisible (mostly meaning that they
  don't want to be found when on certain channels).

Don't truncate obnoxiously long /who output for opers
UNLIMIT_OPER_QUERY
  A /who command can sometimes return several hundred lines of info. To
  reduce flooding and sending too much, the output is truncated. By
  answering 'y' to this, when an IRC Operator uses /who, the output will
  not be truncated, no matter how much data is returned.

Allow Opers to use the KILL command
OPER_KILL
  You can select 'n' if you don't think operators should be able
  to use the KILL command, and wish to prevent your operators from
  using it.  This will not, however, prevent operators on other
  servers from issuing KILLs to your clients.  You probably want to
  select 'y' for this unless you really really don't think KILL
  should -ever- be used by an operator.

Allow Opers to use the REHASH command
OPER_REHASH
  Allows operators to use the REHASH command to reload the servers
  configuration file (ircd.conf) if you select 'n', you can still
  reload the configuration file with a unix command,
  kill -HUP `cat ircd.pid`.  If unsure, select 'y'.

Allow Opers to use the RESTART command
OPER_RESTART
  Allows an operator to use the RESTART command to cause the server
  to restart, using the ircd executable in SPATH.  If unsure, select 'y'.

Allow Opers to use the DIE command
OPER_DIE
  Allows an operator to use the DIE command to shutdown the server
  online.  If you select 'n' you will need to send the server a kill
  signal to shutdown the server.  If unsure, select 'y'.

Allow Opers to add local G-lines
OPER_LGLINE
  Allows operators to add local G-lines with the GLINE command.  This is
  like a *local* KILL, except that the user being killed can't immediately
  reconnect: He will have to wait for the G-line to expire.
  The reason for adding this is that a KILL is rather useless for removing
  (or 'warning') abusers (it is still THE command to remove ghosts and
  a-like, the reason KILL was added in the first place).  However, adding
  G-lines for a dynamic IP with expire times larger then 10 minutes is highly
  discouraged: The user will already have dialed in via another IP or account
  and the G-line would only harm other, innocent, users.

Allow Opers to connect from a remote site
OPER_REMOTE
  If you select 'n' for this, clients must be on the 'same network' as
  the server in order to gain oper privledges.  If your not sure, just
  select 'y'.

Allow local opers to use the REHASH command
LOCOP_REHASH
  Allows a local operator (defined by a lowercase o:line in ircd.conf)
  to cause the server to reload its configuration file (ircd.conf) with
  the REHASH command.  If unsure, select 'n'.

Allow local opers to use the RESTART command
LOCOP_RESTART
  Allows a local operator (defined by a lowercase o:line in ircd.conf)
  to use the RESTART command.  If unsure, select 'n'.

Allow local opers to use the DIE command
LOCOP_DIE
  Allows a local operator (defined by a lowercase o:line in ircd.conf)
  to use the DIE command.  If unsure, select 'n'.

Allow local opers to add local G-lines
LOCOP_LGLINE
  Allows a local operator (defined by a lowercase o:line in ircd.conf)
  to add local G-lines with the GLINE command.  This is like a *local* KILL,
  except that the user being killed can't immediately reconnect: He will
  have to wait for the G-line to expire.

Do you want to have a default LIST parameter
CONFIG_LIST
  Pre-Undernet, the LIST command could either be given with one channel
  name, or without any parameter.  In the last case it would simply list
  all channels.  In time the IRC networks grew big, until the output of
  the LIST command always filled up the sendQ of the client (and dis-
  connected it).  This was fixed by Carlo Wood (Run@IRC) on request of a
  Dutch ISP whose users complained about this:  The LIST output is now
  generated in small chunks, generating more each time when there is room
  in the clients sendQ.  However, then it turned out that LIST (now it
  worked) used 50% of all cpu (not even mentioning the bandwidth)...
  This was unacceptable and the mentioned patch was disabled.  On the
  other hand we wanted LIST to work at least partly, so a few new
  parameters have been added to LIST: <,>,C<,C>,T<,T> each followed by
  a number they filter respectively the number of users on the channel,
  the creation time of the channel (or age, depended on the value of
  the number) and the topic set time.
  If you specify 'y' here, then each time a "/LIST" (without parameter)
  is issued by a client, a default parameter is used.  Note that when
  a parameter is used, the client can still max. sendq out - the send
  flood control only works without any parameter.
  If you specify 'n' here then a "/LIST" without parameters will list
  all channels (and work), but as just said: it uses a LOT of cpu and
  bandwidth on a large net.work.
  If you specify 'y' you will be prompted for the default parameter.

Give default LIST parameter
DEFAULT_LIST
  Here you need to specify the default LIST parameter which is used
  when the server receives a LIST without any parameter.
  You should use something that limits the output to a maximum of a
  few hundred channels; for instance "T<10" (topic is set less then
  10 seconds ago) or ">10" (more then 10 users on the channel) or even
  a combination of this.  Note that you should not include quotes here.

K: line comments treated as a file
COMMENT_IS_FILE
  If you specify 'y' here, then K: line comments (see doc/example.conf
  for more details on the K: line syntax) will be treated as a filename
  which needs to exist and will be written to clients that match that
  K: line.

Only nullify idle-time on PRIVMSG
IDLE_FROM_MSG
  The IRC command WHOIS gives an idle time for clients.  If you want that
  this idle time is set to zero only when the clients send a PRIVMSG,
  then you should specify a 'y' here.
  If you specify a 'n' then the idle time will be nullified on all messages
  except the server PING/PONG.

Check for clones (mandatory on Undernet)
CHECK_CLONE

Check clone limit (2!)
CHECK_CLONE_LIMIT

Check clone period (20!)
CHECK_CLONE_PERIOD

Check clone delay (600!)
CHECK_CLONE_DELAY

Max auto connects per class (1!)
MAXIMUM_LINKS

Enable message logging
MSGLOG_ENABLED
  Define this if you want the server to log received messages in static memory
  at parsing time.  -This is for debugging purposes only-.  You might want to
  redefine LOG_MASK_TYPE in s_debug.h and LOG_MASK_LEVEL in s_debug.c too.
  The default is to log all messages that change some status in server's data
  structures.  Select 'n' unless you are debugging the server code.
  DO NOT SELECT THIS ON PRODUCTION SERVERS!

Message log size
MSGLOG_SIZE
  Number of messages to log. Keep this low as raising it to 1024 will use 800k
  of _static_ memory! Recommended value is 128. You must include this even if
  you selected 'n' for MSGLOG_ENABLED.

Only allow KILLs of local clients
LOCAL_KILL_ONLY
  This only allows operators of this server to KILL clients directly connected
  to this server.  Operators will not be able to issue KILLs for clients on
  other servers.  Some networks (not Undernet) require that this be defined
  for newly linking servers, but if you haven't been told to do otherwise,
  specify 'n' here.

Max server idle time (60)
TIMESEC
  This is the maximum idle time for the server. If no messages are received
  in TIMSEC seconds, PINGFREQUENCY and CONNECTFREQUENCY are checked.
  Recommended value is 60 seconds.

Class 0 ping frequency (120)
PINGFREQUENCY
  If the daemon doesn't receive anything from any of its links within
  PINGFREQUENCY seconds, then the it will attempt to check for an active link
  with a PING message.  If no reply is received within (PINGFREQUENCY * 2)
  seconds, then the connection will be closed.  This value is overridden by
  a Y:line in "ircd.conf" if the connections I/C/N: line in "ircd.conf" assigns
  a specific class to the connection (recommended).

Class 0 connect frequency (600)
CONNECTFREQUENCY
  This is the default frequency that the server attempts to reconnect with
  its uplink server if it is set to auto connect to it. Note that this value
  is overridden by a Y:line in ircd.conf if the C/N:lines in ircd.conf
  assigns a specific class to the connection (recommended).

Min time before a link is good (300)
HANGONGOODLINK
  Often the net breaks for a short time and its useful to reestablish the
  same connection faster than CONNECTFREQUENCY would allow, but to keep
  from trying again on a bad connection, we require that the connection be
  open for a certain minimum time. The recommended value is 300 seconds.

Wait before reconnecting to good link (10!)
HANGONRETRYDELAY
  When attempting to quickly reestablish a connection to a good link, we
  give the net a few seconds to steady. This time must be long enough for
  the other end to notice it broke too. The recommended value is 10 seconds.

connect(2) timeout (90!)
CONNECTTIMEOUT
  Number of seconds to wait for a connect(2) call to complete.  NOTE: this
  must be at *LEAST* 10.  When a client connects, it has CONNECTTIMEOUT - 10
  seconds for its host to respond to an ident lookup query and for a DNS
  lookup to complete. It is recommended you don't change this value, but if
  you do, consider the fact that users whose clients do not support NOSPOOF
  will have to type /QUOTE PING <big number> before registration.

KILL nick chase time limit (30)
KILLCHASETIMELIMIT
  This is the maximum amount of time a KILL command will automatically change
  to the current nick of a user that has just changed nicks from the one given
  with the original KILL.  Don't change this unless you really need to.

Max number of channels per user (recommended: 5)
MAXCHANNELSPERUSER
  This is the maximum number of channels a user can be in at a time.
  The "mandatory" value on Undernet is currently 10.  Since it only
  influences the local server when you decrease it, its up to you to decide
  if you want to use a smaller value.  Do not use a larger value however,
  because it DOES cost more memory and bandwidth on all other servers
  when you allow users to join more channels simultaneously.
  One of the most important reasons to choose a smaller value is the fact
  that the now-a-days 'GUI' clients tend to stay on every channel they
  join (they aren't bothered by flooding in other channels).  It DOES take
  your bandwidth however to send all those messages for 10 different
  channels to all your users.

Max number of silence masks (15!)
MAXSILES
  This is the maximum number of masks a user can silence at a time.
  The silence command allows users to filter messages directed at them
  from certain users or domains, at the source server.  Increasing this
  number allows users to use up more memory with inefficient use of the
  command.  If your not sure, don't change this.

Expected average banmask length (40!)
AVBANLEN
  This is the expected average banmask length.  Leave it at 40.

Use .config of THIS source tree as your upgrade default
CONFIG_NEW
  Each source tree keeps its *own* config/.config file with the default
  values for all questions (those that you gave the last time you did a
  'make config').  Whenever you do 'make config' again in this source tree,
  you will get these defaults.
  However, when you *upgrade* to a new version (and get a NEW source tree),
  it doesn't have a .config yet and will (try to) use a .config of one of
  your previous source trees.
  If you specify 'y' here, then the last defaults of THIS source tree will
  be used in your next upgrade.  Note that any changes you make later to
  config/.config (by running 'make config' again) will also take effect
  on this later upgrade.
  You can always change this by making a new hard link from .config ->
  ircu2.10.xx/config/.config in the directory where you keep the source
  trees.
  If unsure, and you are not currently installing a test source tree,
  specify 'y'.  If this is a second source tree that you will only be
  experimenting with, specify 'n'.