} else {
@group = $opt_system ? getgrnam('irc') : getgrgid($config{GID} // getgid());
print_error "you need to specify a group to run as using '--gid [id|name]'!" unless @group;
+ unless ($group[2]) {
+ print_warning <<"EOW";
+You are building as the privileged $group[0] group and have not specified
+an unprivileged group to run InspIRCd as.
+
+This is almost never what you should do. You should probably either create a new
+unprivileged user/group to build and run as or pass the '--gid [id|name]' flag
+to specify an unprivileged group to run as.
+EOW
+ if (!prompt_bool $interactive, "Are you sure you want to build as the $group[0] group?", 0) {
+ say STDERR "If you are sure you want to build as the $group[0] group pass the --gid $group[2] flag." unless $interactive;
+ exit 1;
+ }
+ }
}
$config{GROUP} = $group[0];
$config{GID} = $group[2];
} else {
@user = $opt_system ? getpwnam('irc') : getpwuid($config{UID} // getuid());
print_error "you need to specify a user to run as using '--uid [id|name]'!" unless @user;
+ unless ($user[2]) {
+ print_warning <<"EOW";
+You are building as the privileged $user[0] user and have not specified
+an unprivileged user to run InspIRCd as.
+
+This is almost never what you should do. You should probably either create a new
+unprivileged user/group to build and run as or pass the '--uid [id|name]' flag
+to specify an unprivileged user to run as.
+EOW
+ if (!prompt_bool $interactive, "Are you sure you want to build as the $user[0] user?", 0) {
+ say STDERR "If you are sure you want to build as the $user[0] user pass the --uid $user[2] flag." unless $interactive;
+ exit 1;
+ }
+ }
}
$config{USER} = $user[0];
$config{UID} = $user[2];
-# Clear the screen.
-system 'tput', 'clear' if $interactive;
-
# Warn the user about clock drifting when running on OpenVZ.
if (-e '/proc/user_beancounters' || -e '/proc/vz/vzaquota') {
print_warning <<'EOW';
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 `<|GREEN git checkout $(git describe --abbrev=0 --tags insp20)|>` if you are
+You can obtain the latest stable version from https://www.inspircd.org or by
+running `<|GREEN git checkout $(git describe --abbrev=0 --tags insp3)|>` if you are
installing from Git.
EOW
if (!prompt_bool $interactive, 'I understand this warning and want to continue anyway.', $opt_development // 0) {
} else {
# TODO: finish modulemanager rewrite and replace this code with:
# system './modulemanager', 'enable', '--auto';
- enable_extras 'm_ssl_gnutls.cpp' unless system 'pkg-config --exists gnutls >/dev/null 2>&1';
- enable_extras 'm_ssl_mbedtls.cpp' if -e '/usr/include/mbedtls/ssl.h';
- enable_extras 'm_ssl_openssl.cpp' unless system 'pkg-config --exists openssl >/dev/null 2>&1';
+ my %modules = (
+ # Missing: m_ldap, m_regex_stdlib, m_ssl_mbedtls
+ 'm_geoip.cpp' => 'pkg-config --exists geoip',
+ 'm_mysql.cpp' => 'mysql_config --version',
+ 'm_pgsql.cpp' => 'pg_config --version',
+ 'm_regex_pcre.cpp' => 'pcre-config --version',
+ 'm_regex_posix.cpp' => undef,
+ 'm_regex_re2.cpp' => 'pkg-config --exists re2',
+ 'm_regex_tre.cpp' => 'pkg-config --exists tre',
+ 'm_sqlite3.cpp' => 'pkg-config --exists sqlite3',
+ 'm_ssl_gnutls.cpp' => 'pkg-config --exists gnutls',
+ 'm_ssl_openssl.cpp' => 'pkg-config --exists openssl',
+ 'm_sslrehashsignal.cpp' => undef,
+ );
+ while (my ($module, $command) = each %modules) {
+ unless (defined $command && system "$command 1>/dev/null 2>/dev/null") {
+ enable_extras $module;
+ }
+ }
}
# Generate SSL certificates.
<|GREEN Execution User:|> $config{USER} ($config{UID})
<|GREEN Socket Engine:|> $config{SOCKETENGINE}
-To build with these settings run '<|GREEN make -j${\get_cpu_count}|>' now.
+To build with these settings run '<|GREEN make -j${\get_cpu_count} install|>' now.
EOM