$opt_noipv6, $opt_maxbuf, $opt_disable_debug, $opt_freebsd_port,
$opt_system, $opt_uid);
-our ($opt_cc, $opt_base_dir, $opt_config_dir, $opt_module_dir, $opt_binary_dir);
+our ($opt_cc, $opt_base_dir, $opt_config_dir, $opt_module_dir, $opt_binary_dir, $opt_data_dir, $opt_log_dir);
sub list_extras ();
'config-dir=s' => \$opt_config_dir,
'module-dir=s' => \$opt_module_dir,
'binary-dir=s' => \$opt_binary_dir,
+ 'data-dir=s' => \$opt_data_dir,
+ 'log-dir=s' => \$opt_log_dir,
'disable-debuginfo' => sub { $opt_disable_debug = 1 },
'help' => sub { showhelp(); },
'update' => sub { update(); },
(defined $opt_module_dir) ||
(defined $opt_base_dir) ||
(defined $opt_binary_dir) ||
+ (defined $opt_data_dir) ||
+ (defined $opt_log_dir) ||
(defined $opt_nointeractive) ||
(defined $opt_cc) ||
(defined $opt_noipv6) ||
our $this = resolve_directory($topdir); # PWD, Regardless.
our @modlist = (); # Declare for Module List..
our %config = (); # Initiate Configuration Hash..
+our $cache_loaded = getcache();
$config{ME} = resolve_directory($topdir); # Present Working Directory
$config{BASE_DIR} = $config{ME}."/run";
if (defined $opt_base_dir) {
$config{BASE_DIR} = $opt_base_dir;
-} elsif (defined $opt_system || defined $opt_uid) {
+} elsif (defined $opt_system) {
$config{BASE_DIR} = '/var/lib/inspircd';
}
-if (defined $opt_system || defined $opt_uid) {
+if (defined $opt_system) {
$config{UID} = $opt_uid || 'ircd';
$config{CONFIG_DIR} = '/etc/inspircd';
$config{MODULE_DIR} = '/usr/lib/inspircd';
$config{BINARY_DIR} = '/usr/sbin/';
$config{BUILD_DIR} = resolve_directory($config{ME}."/build"); # Build Directory
+ $config{DATA_DIR} = '/var/inspircd';
+ $config{LOG_DIR} = '/var/log/inspircd';
} else {
- $config{UID} = $<;
+ $config{UID} = $opt_uid || $<;
$config{CONFIG_DIR} = resolve_directory($config{BASE_DIR}."/conf"); # Configuration Directory
$config{MODULE_DIR} = resolve_directory($config{BASE_DIR}."/modules"); # Modules Directory
$config{BINARY_DIR} = resolve_directory($config{BASE_DIR}."/bin"); # Binary Directory
$config{BUILD_DIR} = resolve_directory($config{ME}."/build"); # Build Directory
+ $config{DATA_DIR} = resolve_directory($config{BASE_DIR}."/data"); # Data directory
+ $config{LOG_DIR} = resolve_directory($config{BASE_DIR}."/logs"); # Log directory
}
if (defined $opt_config_dir) {
if (defined $opt_binary_dir) {
$config{BINARY_DIR} = $opt_binary_dir;
}
-chomp($config{HAS_GNUTLS} = `pkg-config --modversion gnutls 2>/dev/null | cut -c 1,2,3`); # GNUTLS Version.
+if (defined $opt_data_dir) {
+ $config{DATA_DIR} = $opt_data_dir;
+}
+if (defined $opt_log_dir) {
+ $config{LOG_DIR} = $opt_log_dir;
+}
+chomp($config{HAS_GNUTLS} = `pkg-config --modversion gnutls 2>/dev/null`); # GNUTLS Version.
if (defined $opt_freebsd_port)
{
chomp($config{GCCMINOR} = `$exec`);
$config{MAXBUF} = "512"; # Max buffer size
-if ($config{HAS_OPENSSL} =~ /^([-[:digit:].]+)([a-z])?(\-[a-z][0-9])?$/) {
+if ($config{HAS_OPENSSL} =~ /^([-[:digit:].]+)(?:[a-z])?(?:\-[a-z][0-9])?/) {
$config{HAS_OPENSSL} = $1;
} else {
$config{HAS_OPENSSL} = "";
print "Running non-interactive configure...\n" unless $interactive;
print "Checking for cache from previous configure... ";
-print ((!getcache()) ? "not found\n" : "found\n");
+print ($cache_loaded ? "found\n" : "not found\n");
$config{SYSTEM} = lc $^O;
print "Checking operating system version... $config{SYSTEM}\n";
my $rev = getrevision();
# Display Introduction Message..
print <<"STOP" ;
-Welcome to the \e[1mInspIRCd\e[0m Configuration program! (\e[1minteractive mode\e[0m)
+Welcome to the \e[1mInspIRCd\e[0m configuration program! (\e[1minteractive mode\e[0m)
\e[1mPackage maintainers: Type ./configure --help for non-interactive help\e[0m
*** If you are unsure of any of these values, leave it blank for ***
if ($tmpbase ne $config{BASE_DIR}) {
$config{CONFIG_DIR} = resolve_directory($config{BASE_DIR}."/conf"); # Configuration Dir
$config{MODULE_DIR} = resolve_directory($config{BASE_DIR}."/modules"); # Modules Directory
+ $config{DATA_DIR} = resolve_directory($config{BASE_DIR}."/data"); # Data Directory
+ $config{LOG_DIR} = resolve_directory($config{BASE_DIR}."/logs"); # Log Directory
$config{BINARY_DIR} = resolve_directory($config{BASE_DIR}."/bin"); # Binary Directory
}
dir_check("are the configuration files", "CONFIG_DIR");
dir_check("are the modules to be compiled to", "MODULE_DIR");
dir_check("is the IRCd binary to be placed", "BINARY_DIR");
+ dir_check("are variable data files to be located in", "DATA_DIR");
+ dir_check("are the logs to be stored in", "LOG_DIR");
dir_check("do you want the build to take place", "BUILD_DIR");
-
+
my $chose_hiperf = 0;
if ($has_kqueue) {
yesno('USE_KQUEUE',"You are running a BSD operating system, and kqueue\nwas detected. Would you like to enable kqueue support?\nThis is likely to increase performance.\nIf you are unsure, answer yes.\n\nEnable kqueue?");
yesno('MODUPDATE',"Would you like to check for updates to third-party modules?");
print "\n";
if ($config{MODUPDATE} eq "y") {
- print "Checking for upgrades to extra and third party modules... ";
+ print "Checking for upgrades to extra and third-party modules... ";
system "./modulemanager upgrade";
}
}
if (($config{USE_GNUTLS} eq "y") && ($config{HAS_GNUTLS} ne "y"))
{
- print "Sorry, but i couldn't detect gnutls. Make sure gnutls-config is in your path.\n";
+ print "Sorry, but I couldn't detect GnuTLS. Make sure gnutls-config is in your path.\n";
exit(0);
}
if (($config{USE_OPENSSL} eq "y") && ($config{HAS_OPENSSL} ne "y"))
{
- print "Sorry, but i couldn't detect openssl. Make sure openssl is in your path.\n";
+ print "Sorry, but I couldn't detect OpenSSL. Make sure openssl is in your path.\n";
exit(0);
}
our $failed = 0;
$config{CERTGEN} ||= 'y';
-yesno('CERTGEN',"Would you like generate SSL certificates now?") if ($interactive && ($config{USE_GNUTLS} eq "y" || $config{USE_OPENSSL} eq "y"));
+yesno('CERTGEN',"Would you like to generate SSL certificates now?") if ($interactive && ($config{USE_GNUTLS} eq "y" || $config{USE_OPENSSL} eq "y"));
if ($config{USE_GNUTLS} eq "y") {
unless (-r "src/modules/m_ssl_gnutls.cpp") {
if ($interactive && $config{CERTGEN} eq 'y')
{
unless (-r "$config{CONFIG_DIR}/key.pem" && -r "$config{CONFIG_DIR}/cert.pem") {
- print "SSL Certificates Not found, Generating.. \n\n
+ print "SSL certificates not found, generating.. \n\n
*************************************************************
-* Generating the Private Key may take some time, go grab a *
-* Coffee. Even better, to generate some more entropy if it *
-* is taking a while, open another console and type du / a *
-* few times and get that HD going :) Then answer the *
-* Questions which follow. If you are unsure, just hit enter *
+* Generating the private key may take some time, once done, *
+* answer the questions which follow. If you are unsure, *
+* just hit enter! *
*************************************************************\n\n";
$failed = make_gnutls_cert();
if ($failed) {
}
}
else {
- print "SSL Certificates found, skipping.\n\n";
+ print "SSL certificates found, skipping.\n\n";
}
}
else
if ($interactive && $config{CERTGEN} eq 'y')
{
unless (-r "$config{CONFIG_DIR}/key.pem" && -r "$config{CONFIG_DIR}/cert.pem") {
- print "SSL Certificates Not found, Generating.. \n\n
+ print "SSL certificates not found, generating.. \n\n
*************************************************************
* Generating the certificates may take some time, go grab a *
-* coffee, or something. *
+* coffee or something. *
*************************************************************\n\n";
make_openssl_cert();
print "\nCertificate generation complete, copying to config directory... ";
File::Copy::move("dhparams.pem", "$config{CONFIG_DIR}/dhparams.pem") or print STDERR "Could not copy dhparams.pem!\n";
print "Done.\n\n";
} else {
- print "SSL Certificates found, skipping.\n\n"
+ print "SSL certificates found, skipping.\n\n"
}
}
else
}
}
if (($config{USE_GNUTLS} eq "n") && ($config{USE_OPENSSL} eq "n")) {
- print "Skipping SSL Certificate generation, SSL support is not available.\n\n";
+ print "Skipping SSL certificate generation as SSL support is not available.\n\n";
}
depcheck();
if (($config{USE_GNUTLS} eq "y") || ($config{USE_OPENSSL} eq "y")) {
print "Please note: for \e[1;32mSSL support\e[0m you will need to load required\n";
print "modules in your config. This configure script has added those modules to the\n";
- print "build process. For more info please refer to:\n";
+ print "build process. For more info, please refer to:\n";
print "\e[1;32mhttp://wiki.inspircd.org/Installation_From_Tarball\e[0m\n";
}
print "*** \e[1;32mRemember to edit your configuration files!!!\e[0m ***\n\n\n";
if (($config{OSNAME} eq "OpenBSD") && ($config{CC} ne "eg++")) {
- print "\e[1;32mWARNING!\e[0m You are running OpenBSD but you are using the base gcc package\nrather than eg++. This compile will most likely fail, but i'm letting you\ngo ahead with it anyway, just in case i'm wrong :-)\n";
+ print "\e[1;32mWARNING!\e[0m You are running OpenBSD but you are using the base gcc package\nrather than eg++. This compile will most likely fail, but I'm letting you\ngo ahead with it anyway, just in case I'm wrong :-)\n";
}
if ($config{GCCVER} < "3") {
#define DllExport /**/
#define CONFIG_PATH "$config{CONFIG_DIR}"
+#define DATA_PATH "$config{DATA_DIR}"
+#define LOG_PATH "$config{LOG_DIR}"
#define MOD_PATH "$config{MODULE_DIR}"
#define SOMAXCONN_S "$config{_SOMAXCONN}"
#define ENTRYPOINT int main(int argc, char** argv)
if ($config{GCCVER} >= 3) {
print FILEHANDLE "#define GCC3\n";
}
- if (
- (($config{GCCVER} == 4) && ($config{GCCMINOR} >= 3))
- ||
- ($config{GCCVER} > 4)
- ) {
- print FILEHANDLE "#define HASHMAP_DEPRECATED\n";
- }
if ($config{HAS_STRLCPY} eq "true") {
print FILEHANDLE "#define HAS_STRLCPY\n";
}
$config{BUILD_DIR} ||= resolve_directory($config{ME}."/build");
for my $var (qw(
- CC SYSTEM BASE_DIR CONFIG_DIR MODULE_DIR BINARY_DIR BUILD_DIR UID
+ CC SYSTEM BASE_DIR CONFIG_DIR MODULE_DIR BINARY_DIR BUILD_DIR DATA_DIR UID
STARTSCRIPT DESTINATION SOCKETENGINE
)) {
s/\@$var\@/$config{$var}/g;