aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--www/rt36/Makefile3
-rw-r--r--www/rt36/files/multiple-bin-webmux_pl_in15
-rw-r--r--www/rt36/files/multiple-lib-RT_pm_in63
-rw-r--r--www/rt36/files/multiple-sbin-rt-setup-database_in21
4 files changed, 102 insertions, 0 deletions
diff --git a/www/rt36/Makefile b/www/rt36/Makefile
index d53266368b51..ed9c7aa999c2 100644
--- a/www/rt36/Makefile
+++ b/www/rt36/Makefile
@@ -108,6 +108,9 @@ BUILD_DEPENDS+= ${LOCALBASE}/libexec/apache/libperl.so:${PORTSDIR}/www/mod_perl
${SITE_PERL}/${PERL_ARCH}/Apache/Request.pm:${PORTSDIR}/www/p5-libapreq
.endif
.endif
+.if defined(MULTIPLE_INSTANCES)
+EXTRA_PATCHES+= ${FILESDIR}/multiple*
+.endif
DB_TYPE?= mysql
diff --git a/www/rt36/files/multiple-bin-webmux_pl_in b/www/rt36/files/multiple-bin-webmux_pl_in
new file mode 100644
index 000000000000..0797718ee9a5
--- /dev/null
+++ b/www/rt36/files/multiple-bin-webmux_pl_in
@@ -0,0 +1,15 @@
+--- bin/webmux.pl.in.orig Tue Sep 26 18:06:31 2006
++++ bin/webmux.pl.in Mon Apr 30 23:04:45 2007
+@@ -63,6 +63,12 @@
+ }
+
+ use lib ( "@LOCAL_LIB_PATH@", "@RT_LIB_PATH@" );
++if ($ENV{RT_INSTANCE_PATH}) {
++ lib->import("$ENV{RT_INSTANCE_PATH}/local/lib");
++}
++if ($ENV{RT_VENDOR_PATH}) {
++ lib->import($ENV{RT_VENDOR_PATH});
++}
+ use RT;
+
+ package RT::Mason;
diff --git a/www/rt36/files/multiple-lib-RT_pm_in b/www/rt36/files/multiple-lib-RT_pm_in
new file mode 100644
index 000000000000..0cbeb31f238c
--- /dev/null
+++ b/www/rt36/files/multiple-lib-RT_pm_in
@@ -0,0 +1,63 @@
+--- lib/RT.pm.in.orig Mon Nov 6 21:09:32 2006
++++ lib/RT.pm.in Mon Apr 30 23:04:45 2007
+@@ -98,6 +98,60 @@
+ # via the web interface)
+ $MasonSessionDir = '@MASON_SESSION_PATH@';
+
++=item import
++
++Allow override of various internal paths.
++
++ RT->import (
++ RT_INSTANCE_PATH => '/usr/local/rt/stuff',
++ SITE_CONFIG_FILE => '/etc/stuff.pm',
++ ...
++ );
++
++If RT_INSTANCE_PATH is set in the arguments (or in %ENV)
++then it replaces the old value of $BasePath in the following
++variables:
++ $SITE_CONFIG_FILE
++ $LocalPath
++ $LocalEtcPath
++ $LocalLexiconPath
++ $MasonLocalComponentRoot
++ $MasonDataDir
++ $MasonSessionDir
++
++Beyond that, those individual values can be set explicitly
++by arguments.
++
++=cut
++
++sub import {
++no strict 'refs';
++ shift;
++ my %args = @_;
++ return unless ( scalar (keys %args) || $ENV{RT_INSTANCE_PATH} );
++
++ my @variables = qw (
++ SITE_CONFIG_FILE
++ LocalPath
++ LocalEtcPath
++ LocalLexiconPath
++ MasonLocalComponentRoot
++ MasonDataDir
++ MasonSessionDir
++ );
++
++ my $RT_INSTANCE_PATH = $args{RT_INSTANCE_PATH} || $ENV{RT_INSTANCE_PATH};
++ if ($RT_INSTANCE_PATH) {
++ foreach my $vref (@variables) {
++ $$vref =~ s/^\Q$BasePath\E/$RT_INSTANCE_PATH/;
++ }
++ }
++ foreach my $vref (@variables) {
++ $$vref = $args{$vref} if defined ( $args{$vref} );
++ }
++
++use strict 'refs';
++}
+
+
+ =head1 NAME
diff --git a/www/rt36/files/multiple-sbin-rt-setup-database_in b/www/rt36/files/multiple-sbin-rt-setup-database_in
new file mode 100644
index 000000000000..a4c38d484d2a
--- /dev/null
+++ b/www/rt36/files/multiple-sbin-rt-setup-database_in
@@ -0,0 +1,21 @@
+--- sbin/rt-setup-database.in.orig Fri Dec 1 20:59:26 2006
++++ sbin/rt-setup-database.in Mon Apr 30 23:04:45 2007
+@@ -51,11 +51,17 @@
+
+ use lib "@LOCAL_LIB_PATH@";
+ use lib "@RT_LIB_PATH@";
++## RT_INSTANCE_PATH can be passed in environment.
++## Can change where RT_SiteConfig is read from.
++my $RT_INSTANCE_PATH;
++BEGIN {
++ $RT_INSTANCE_PATH = $ENV{RT_INSTANCE_PATH};
++}
+
+ #This drags in RT's config.pm
+ # We do it in a begin block because RT::Handle needs to know the type to do its
+ # inheritance
+-use RT;
++use RT (RT_INSTANCE_PATH => $RT_INSTANCE_PATH);
+ use Carp;
+ use RT::User;
+ use RT::CurrentUser;