diff options
author | Peter Powell <petpow@saberuk.com> | 2017-09-21 18:44:29 +0100 |
---|---|---|
committer | Peter Powell <petpow@saberuk.com> | 2017-09-21 20:49:49 +0100 |
commit | b8babf2c43edd0f1ee2997125c6ea4cd21e15d68 (patch) | |
tree | 71ff647cf9515ff5ca9518cd2c37dc3c4314d67c | |
parent | ca9a56b7ac0ec2139ade835144369455baa757bc (diff) |
Move the init scripts out of the prefix into the new script dir.
The previous directory was okay for home directory installs but
was problematic for system wide installs.
-rwxr-xr-x | configure | 6 | ||||
-rw-r--r-- | make/configure.pm | 3 | ||||
-rw-r--r-- | make/template/inspircd | 5 | ||||
-rw-r--r-- | make/template/inspircd.service | 6 | ||||
-rw-r--r-- | make/template/main.mk | 18 |
5 files changed, 25 insertions, 13 deletions
@@ -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 @@ -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. @@ -334,6 +339,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}) diff --git a/make/configure.pm b/make/configure.pm index dfdbf5f75..82d14f564 100644 --- a/make/configure.pm +++ b/make/configure.pm @@ -139,6 +139,9 @@ PATH OPTIONS --module-dir=[dir] The location where the loadable modules are stored. [$PWD/run/modules] + --script-dir=[dir] The location where the scripts, such as the + init scripts, are stored. + [$PWD/run] EXTRA MODULE OPTIONS diff --git a/make/template/inspircd b/make/template/inspircd index 949f85cee..2ea0a5492 100644 --- a/make/template/inspircd +++ b/make/template/inspircd @@ -48,6 +48,7 @@ use constant { GENERIC_EXIT_NOT_RUNNING => 7 }; +my $scriptpath = "@SCRIPT_DIR@" my $basepath = "@BASE_DIR@"; my $confpath = "@CONFIG_DIR@/"; my $binpath = "@BINARY_DIR@"; @@ -203,7 +204,7 @@ sub dev_debug(@) checkgdb(); # If we are still alive here.. Try starting the IRCd.. - exec 'gdb', "--command=$basepath/.gdbargs", '--args', "$binpath/$executable", qw(--nofork --debug), @_; + exec 'gdb', "--command=$scriptpath/.gdbargs", '--args', "$binpath/$executable", qw(--nofork --debug), @_; die "Failed to start GDB: $!\n"; } @@ -222,7 +223,7 @@ sub dev_screendebug(@) # If we are still alive here.. Try starting the IRCd.. print "Starting InspIRCd in `screen`, type `screen -r` when the ircd crashes to view the gdb output and get a backtrace.\n"; print "Once you're inside the screen session press ^C + d to re-detach from the session\n"; - exec qw(screen -m -d gdb), "--command=$basepath/.gdbargs", '-args', "$binpath/$executable", qw(--nofork --debug --nolog), @_; + exec qw(screen -m -d gdb), "--command=$scriptpath/.gdbargs", '-args', "$binpath/$executable", qw(--nofork --debug --nolog), @_; die "Failed to start screen: $!\n"; } diff --git a/make/template/inspircd.service b/make/template/inspircd.service index e5f28a674..c05e61822 100644 --- a/make/template/inspircd.service +++ b/make/template/inspircd.service @@ -24,9 +24,9 @@ Description=InspIRCd - Internet Relay Chat Daemon Requires=network.target [Service] -ExecReload=@BASE_DIR@/inspircd rehash -ExecStart=@BASE_DIR@/inspircd start -ExecStop=@BASE_DIR@/inspircd stop +ExecReload=@SCRIPT_DIR@/inspircd rehash +ExecStart=@SCRIPT_DIR@/inspircd start +ExecStop=@SCRIPT_DIR@/inspircd stop PIDFile=@DATA_DIR@/inspircd.pid Restart=on-failure Type=forking diff --git a/make/template/main.mk b/make/template/main.mk index 49c77da05..ff464a228 100644 --- a/make/template/main.mk +++ b/make/template/main.mk @@ -45,6 +45,7 @@ MODPATH = "$(DESTDIR)@MODULE_DIR@" LOGPATH = "$(DESTDIR)@LOG_DIR@" DATPATH = "$(DESTDIR)@DATA_DIR@" BINPATH = "$(DESTDIR)@BINARY_DIR@" +SCRPATH = "$(DESTDIR)@SCRIPT_DIR@" INSTALL = install INSTUID = @UID@ INSTMODE_DIR = 0750 @@ -224,17 +225,18 @@ install: target @-$(INSTALL) -d -m $(INSTMODE_DIR) $(CONPATH)/examples/services @-$(INSTALL) -d -m $(INSTMODE_DIR) $(MANPATH) @-$(INSTALL) -d -m $(INSTMODE_DIR) $(MODPATH) + @-$(INSTALL) -d -m $(INSTMODE_DIR) $(SCRPATH) [ "$(BUILDPATH)/bin/" -ef $(BINPATH) ] || $(INSTALL) -m $(INSTMODE_BIN) "$(BUILDPATH)/bin/inspircd" $(BINPATH) ifndef INSPIRCD_STATIC [ "$(BUILDPATH)/modules/" -ef $(MODPATH) ] || $(INSTALL) -m $(INSTMODE_LIB) "$(BUILDPATH)/modules/"*.so $(MODPATH) endif - -$(INSTALL) -m $(INSTMODE_BIN) @CONFIGURE_DIRECTORY@/inspircd $(BASE) 2>/dev/null - -$(INSTALL) -m $(INSTMODE_LIB) .gdbargs $(BASE)/.gdbargs 2>/dev/null + -$(INSTALL) -m $(INSTMODE_BIN) @CONFIGURE_DIRECTORY@/inspircd $(SCRPATH) 2>/dev/null + -$(INSTALL) -m $(INSTMODE_LIB) .gdbargs $(SCRPATH)/.gdbargs 2>/dev/null ifeq ($(SYSTEM), darwin) - -$(INSTALL) -m $(INSTMODE_BIN) @CONFIGURE_DIRECTORY@/org.inspircd.plist $(BASE) 2>/dev/null + -$(INSTALL) -m $(INSTMODE_BIN) @CONFIGURE_DIRECTORY@/org.inspircd.plist $(SCRPATH) 2>/dev/null endif ifeq ($(SYSTEM), linux) - -$(INSTALL) -m $(INSTMODE_LIB) @CONFIGURE_DIRECTORY@/inspircd.service $(BASE) 2>/dev/null + -$(INSTALL) -m $(INSTMODE_LIB) @CONFIGURE_DIRECTORY@/inspircd.service $(SCRPATH) 2>/dev/null endif -$(INSTALL) -m $(INSTMODE_LIB) @CONFIGURE_DIRECTORY@/inspircd.1 $(MANPATH) 2>/dev/null -$(INSTALL) -m $(INSTMODE_LIB) @CONFIGURE_DIRECTORY@/inspircd-genssl.1 $(MANPATH) 2>/dev/null @@ -253,7 +255,7 @@ endif @echo ' Binaries:' $(BINPATH) @echo ' Modules:' $(MODPATH) @echo ' Data:' $(DATPATH) - @echo 'To start the ircd, run:' $(BASE)/inspircd start + @echo 'To start the ircd, run:' $(SCRPATH)/inspircd start @echo 'Remember to create your config file:' $(CONPATH)/inspircd.conf @echo 'Examples are available at:' $(CONPATH)/examples/ @@ -275,9 +277,9 @@ deinstall: -rm -f $(MANPATH)/inspircd-genssl.1 -rm -f $(MODPATH)/m_*.so -rm -f $(MODPATH)/core_*.so - -rm -f $(BASE)/.gdbargs - -rm -f $(BASE)/inspircd.service - -rm -f $(BASE)/org.inspircd.plist + -rm -f $(SCRPATH)/.gdbargs + -rm -f $(SCRPATH)/inspircd.service + -rm -f $(SCRPATH)/org.inspircd.plist configureclean: rm -f .gdbargs |