]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - configure
Tell the user to check out the latest tag rather than the branch.
[user/henk/code/inspircd.git] / configure
index ca2e2f19ba6a2596a430077de263aff6ccced1df..3badba2c6cb72e96797a2d026da18bf2b3dcf9a7 100755 (executable)
--- a/configure
+++ b/configure
@@ -59,6 +59,7 @@ my ($opt_binary_dir,
     $opt_manual_dir,
     $opt_module_dir,
     $opt_prefix,
+    $opt_script_dir,
     $opt_socketengine,
     $opt_system,
     $opt_uid);
@@ -88,6 +89,7 @@ GetOptions(
        'manual-dir=s'         => \$opt_manual_dir,
        'module-dir=s'         => \$opt_module_dir,
        'prefix=s'             => \$opt_prefix,
+       'script-dir=s'         => \$opt_script_dir,
        'socketengine=s'       => \$opt_socketengine,
        'system'               => \$opt_system,
        'uid=s'                => \$opt_uid,
@@ -122,6 +124,7 @@ our $interactive = !(
        defined $opt_manual_dir ||
        defined $opt_module_dir ||
        defined $opt_prefix ||
+       defined $opt_script_dir ||
        defined $opt_socketengine ||
        defined $opt_system ||
        defined $opt_uid
@@ -156,13 +159,13 @@ unless ($config{CXX}) {
 }
 my %compiler = get_compiler_info($config{CXX});
 
+$config{HAS_ARC4RANDOM_BUF} = run_test 'arc4random_buf()', test_file($config{CXX}, 'arc4random_buf.cpp');
 $config{HAS_CLOCK_GETTIME} = run_test 'clock_gettime()', test_file($config{CXX}, 'clock_gettime.cpp', $^O eq 'darwin' ? undef : '-lrt');
 $config{HAS_EVENTFD} = run_test 'eventfd()', test_file($config{CXX}, 'eventfd.cpp');
 
 my @socketengines;
 push @socketengines, 'epoll'  if run_test 'epoll', test_header $config{CXX}, 'sys/epoll.h';
 push @socketengines, 'kqueue' if run_test 'kqueue', test_file $config{CXX}, 'kqueue.cpp';
-push @socketengines, 'ports'  if run_test 'Solaris IOCP', test_header $config{CXX}, 'port.h';
 push @socketengines, 'poll'   if run_test 'poll', test_header $config{CXX}, 'poll.h';
 push @socketengines, 'select';
 
@@ -184,6 +187,7 @@ if (defined $opt_system) {
        $config{LOG_DIR}    = $opt_module_dir // '/var/log/inspircd';
        $config{MANUAL_DIR} = $opt_manual_dir // '/usr/share/man/man1';
        $config{MODULE_DIR} = $opt_module_dir // '/usr/lib/inspircd';
+       $config{SCRIPT_DIR} = $opt_script_dir // '/usr/share/inspircd'
 } else {
        $config{BASE_DIR}   = $opt_prefix     // $config{BASE_DIR}   // rel2abs 'run';
        $config{BINARY_DIR} = $opt_binary_dir // $config{BINARY_DIR} // rel2abs $config{BASE_DIR} . '/bin';
@@ -192,6 +196,7 @@ if (defined $opt_system) {
        $config{LOG_DIR}    = $opt_log_dir    // $config{LOG_DIR}    // rel2abs $config{BASE_DIR} . '/logs';
        $config{MANUAL_DIR} = $opt_manual_dir // $config{MANUAL_DIR} // rel2abs $config{BASE_DIR} . '/manuals';
        $config{MODULE_DIR} = $opt_module_dir // $config{MODULE_DIR} // rel2abs $config{BASE_DIR} . '/modules';
+       $config{SCRIPT_DIR} = $opt_script_dir // $config{SCRIPT_DIR} // $config{BASE_DIR};
 }
 
 # Parse --gid=123 or --gid=foo and extract the group id.
@@ -239,7 +244,8 @@ affect the running of your server. It is recommended that you use a stable
 version instead.
 
 You can obtain the latest stable version from http://www.inspircd.org/ or by
-running `git checkout insp20` if you are installing from Git.
+running `<|GREEN git checkout $(git describe --abbrev=0 --tags insp20)|>` if you are
+installing from Git.
 EOW
        if (!prompt_bool $interactive, 'I understand this warning and want to continue anyway.', $opt_development // 0) {
                say STDERR 'If you understand this warning and still want to continue pass the --development flag.' unless $interactive;
@@ -258,13 +264,14 @@ Currently, InspIRCd is configured with the following paths:
 <|BOLD Log:|>    $config{LOG_DIR}
 <|BOLD Manual:|> $config{MANUAL_DIR}
 <|BOLD Module:|> $config{MODULE_DIR}
+<|BOLD Script:|> $config{SCRIPT_DIR}
 
 Do you want to change these settings?
 EOQ
 if (prompt_bool $interactive, $question, 0) {
        my $original_base_dir = $config{BASE_DIR};
        $config{BASE_DIR} = prompt_dir $interactive, 'In what directory do you wish to install the InspIRCd base?', $config{BASE_DIR};
-       foreach my $key (qw(BINARY_DIR CONFIG_DIR DATA_DIR LOG_DIR MANUAL_DIR MODULE_DIR)) {
+       foreach my $key (qw(BINARY_DIR CONFIG_DIR DATA_DIR LOG_DIR MANUAL_DIR MODULE_DIR SCRIPT_DIR)) {
                $config{$key} =~ s/^\Q$original_base_dir\E/$config{BASE_DIR}/;
        }
        $config{BINARY_DIR} = prompt_dir $interactive, 'In what directory should the InspIRCd binary be placed?', $config{BINARY_DIR};
@@ -273,6 +280,7 @@ if (prompt_bool $interactive, $question, 0) {
        $config{LOG_DIR}    = prompt_dir $interactive, 'In what directory are log files to be stored?',           $config{LOG_DIR};
        $config{MANUAL_DIR} = prompt_dir $interactive, 'In what directory are manual pages to be placed?',        $config{MANUAL_DIR};
        $config{MODULE_DIR} = prompt_dir $interactive, 'In what directory are modules to be placed?',             $config{MODULE_DIR};
+       $config{SCRIPT_DIR} = prompt_dir $interactive, 'In what directory are scripts to be placed?',             $config{SCRIPT_DIR};
 }
 
 # Configure module settings.
@@ -297,7 +305,15 @@ if (prompt_bool $interactive, $question, 0) {
 }
 
 # Generate SSL certificates.
-if (<src/modules/m_ssl_*.cpp> && prompt_bool $interactive, 'Would you like to generate SSL certificates now?', $interactive) {
+$question = <<EOQ;
+Would you like to generate a self-signed SSL certificate now? This certificate
+can be used for testing but <|BOLD should not|> be used on a production network.
+
+Note: you can get a <|BOLD free|> CA-signed certificate from Let's Encrypt. See
+https://letsencrypt.org/getting-started/ for more details.
+EOQ
+
+if (<src/modules/m_ssl_*.cpp> && prompt_bool $interactive, $question, $interactive) {
        system './tools/genssl', 'auto';
 }
 
@@ -334,6 +350,7 @@ print_format <<"EOM";
   <|GREEN Log:|>    $config{LOG_DIR}
   <|GREEN Manual:|> $config{MANUAL_DIR}
   <|GREEN Module:|> $config{MODULE_DIR}
+  <|GREEN Script:|> $config{SCRIPT_DIR}
 
 <|GREEN Execution Group:|> $config{GROUP} ($config{GID})
 <|GREEN Execution User:|>  $config{USER} ($config{UID})