[Rt-commit] [svn] r1466 - rtir/branches/1.1
leira at pallas.eruditorum.org
leira at pallas.eruditorum.org
Thu Sep 9 17:19:48 EDT 2004
Author: leira
Date: Thu Sep 9 17:19:48 2004
New Revision: 1466
Added:
rtir/branches/1.1/UPGRADING
Modified:
rtir/branches/1.1/README
Log:
Updated README for RTIR 1.1.
Added an UPGRADING file for upgrading details.
Modified: rtir/branches/1.1/README
==============================================================================
--- rtir/branches/1.1/README (original)
+++ rtir/branches/1.1/README Thu Sep 9 17:19:48 2004
@@ -1,277 +1,64 @@
RTIR (RT for Incident Reponse) is a tool for tracking, responding to,
and investigating reported incidents. Out of the box, it integrates
-with RT3 (Also available from bestpractical.com)
+with RT3 (Also available from bestpractical.com).
+WARNING!
+--------
-Upgrading from RTIR 1.0.2:
------
+This is a beta version of RTIR. Be certain to make a full dump of
+your database, and make backups of any local modifications that you've
+made.
-Follow instructions from previous "upgrading from" sections if they apply.
+As always, if you are using RTIR in a production environment, we
+recommend that you first install and use this version in a test
+environment, in order to be certain that it meets your needs.
-1) RTIR 1.0.3 changes the "SetRTIRState" custom scrip action in the
-Incident Reports queue from previous versions. AFTER Installing RTIR
-1.0.3, alter the "SetRTIRState"'s custom action cleanup content to read
-
-# ------------------------------------------------------------------- #
- my $State;
- my $cf = RT::CustomField->new($self->TransactionObj->CurrentUser);
- $cf->LoadByNameAndQueue(Queue => $self->TicketObj->QueueObj->Id, Name => '_RTIR_State');
- unless ($cf->Id) {
- return(1);
- }
- if ($self->TicketObj->Status eq 'new' or $self->TicketObj->Status eq 'open' or $self->TicketObj->Status eq 'stalled') {
- $State = 'new';
- my $parents = RT::Tickets->new($self->TransactionObj->CurrentUser);
- $parents->LimitHasMember($self->TicketObj->id);
- $parents->LimitQueue(VALUE => 'Incidents');
- if ($parents->First) {
- $State = 'open';
- }
- } elsif ($self->TicketObj->Status eq 'resolved') {
- $State = 'resolved';
- } elsif ($self->TicketObj->Status eq 'rejected') {
- $State = 'rejected';
- } else {
- return 0;
- }
- $self->TicketObj->AddCustomFieldValue(Field => $cf->id, Value => $State);
- return 1;
-# ------------------------------------------------------------------- #
-
-2) RTIR 1.0.3 changes the "SetRTIRState" custom scrip action in the
-Investigations queue from previous versions. AFTER Installing RTIR
-1.0.3, alter the "SetRTIRState"'s custom action cleanup content to read
-
-# ------------------------------------------------------------------- #
- my $State;
- my $cf = RT::CustomField->new($self->TransactionObj->CurrentUser);
- $cf->LoadByNameAndQueue(Queue => $self->TicketObj->QueueObj->Id, Name => '_RTIR_State');
- unless ($cf->Id) {
- return(1);
- }
- if ($self->TicketObj->Status eq 'open' or $self->TicketObj->Status eq 'new') {
- $State = 'open';
- } elsif ($self->TicketObj->Status eq 'resolved') {
- $State = 'resolved';
- } else {
- return 0;
- }
- $self->TicketObj->AddCustomFieldValue(Field => $cf->id, Value => $State);
- return 1;
-# ------------------------------------------------------------------- #
-
-3) RTIR 1.0.3 changes the "SetRTIRState" custom scrip action in the
-Blocks queue from previous versions. AFTER Installing RTIR
-1.0.3, alter the "SetRTIRState"'s custom action cleanup content to read
-
-# ------------------------------------------------------------------- #
-my $State;
-my $cf = RT::CustomField->new($self->TransactionObj->CurrentUser);
-$cf->LoadByNameAndQueue(Queue => $self->TicketObj->QueueObj->Id, Name => '_RTIR_State');
-unless ($cf->Id) {
- return(1);
-}
-
-if ($self->TicketObj->Status eq 'new') {
- $State = 'pending activation';
-} elsif ($self->TicketObj->Status eq 'open') {
- $State = 'active';
-} elsif ($self->TicketObj->Status eq 'stalled') {
- $State = 'pending removal';
-} elsif ($self->TicketObj->Status eq 'resolved') {
- $State = 'removed';
-} else {
- return 0;
-}
-$self->TicketObj->AddCustomFieldValue(Field => $cf->id, Value => $State);
-return 1;
-# ------------------------------------------------------------------- #
-
-4) RTIR 1.0.3 changes the "SetRTIRState" custom scrip action in the
-Incidents queue from previous versions. AFTER Installing RTIR
-1.0.3, alter the "SetRTIRState"'s custom action cleanup content to read
-
-# ------------------------------------------------------------------- #
- my $State;
- my $cf = RT::CustomField->new($self->TransactionObj->CurrentUser);
- $cf->LoadByNameAndQueue(Queue => $self->TicketObj->QueueObj->Id, Name => '_RTIR_State');
- unless ($cf->Id) {
- return(1);
- }
- if ($self->TicketObj->Status eq 'new' ||
- $self->TicketObj->Status eq 'open' ||
- $self->TicketObj->Status eq 'stalled') {
- $State = 'open';
- } elsif ($self->TicketObj->Status eq 'resolved') {
- $State = 'resolved';
- } elsif ($self->TicketObj->Status eq 'rejected') {
- $State = 'abandoned';
- } else {
- return 0;
- }
- $self->TicketObj->AddCustomFieldValue(Field => $cf->id, Value => $State);
- return 1;
-# ------------------------------------------------------------------- #
-
-5) RTIR 1.0.3 changes the "SetDates" custom scrip action in the
-Incident Reports queue from previous versions. AFTER Installing RTIR
-1.0.3, alter the "SetDates"'s custom action cleanup content to read
-
-# ------------------------------------------------------------------- #
-my $sla;
-my $date = RT::Date->new($RT::SystemUser);
-$date->SetToNow;
-use Business::Hours;
-my $bizhours = new Business::Hours;
-if ($RT::BusinessHours) {
- $bizhours->business_hours(%$RT::BusinessHours);
-}
-
-if ($self->TicketObj->FirstCustomFieldValue('_RTIR_SLA')) {
- $sla = $self->TicketObj->FirstCustomFieldValue('_RTIR_SLA');
-} elsif ($bizhours->first_after($date->Unix) != $date->Unix) {
- $sla = "Full service: out of hours";
-} else {
- $sla = "Full service";
-}
-
-my $addminutes = $RT::SLA->{$sla};
-if ($self->TicketObj->StartsObj->AsString eq "Not set") {
- my $starts = $bizhours->first_after($date->Unix);
- $date->Set(Format => 'unix', Value => $starts);
- $self->TicketObj->SetStarts($date->ISO);
- my $due = $bizhours->add_seconds($date->Unix, $addminutes * 60);
- $date->Set(Format => 'unix', Value => $due);
- $self->TicketObj->SetDue($date->ISO);
-}
-my $cf = RT::CustomField->new($self->TransactionObj->CurrentUser);
-$cf->LoadByNameAndQueue(Queue => $self->TicketObj->QueueObj->Id, Name => '_RTIR_SLA');
-unless ($cf->Id) {
- return(1);
-}
-$self->TicketObj->AddCustomFieldValue(Field => $cf->id, Value => $sla);
-return 1;
-# ------------------------------------------------------------------- #
-
-6) RTIR 1.0.3 changes the "SetHowReported" custom scrip action in the
-Incident Reports queue from previous versions. AFTER Installing RTIR
-1.0.3, alter the "SetHowReported"'s custom action cleanup content to read
-
-# ------------------------------------------------------------------- #
-my $cf = RT::CustomField->new($self->TransactionObj->CurrentUser);
-$cf->LoadByNameAndQueue(Queue => $self->TicketObj->QueueObj->Id, Name => '_RTIR_HowReported');
-unless ($cf->Id) {
- return(1);
-}
-my $Values = $self->TicketObj->CustomFieldValues($cf->id);
-if (!$Values->Next) {
- $self->TicketObj->AddCustomFieldValue(Field => $cf->id, Value => "Email");
-}
- return 1;
-# ------------------------------------------------------------------- #
-
-7) RTIR 1.0.3 changes the "FixOwnership" custom scrip action in the
-Incidents queue from previous versions. AFTER Installing RTIR
-1.0.3, alter the "FixOwnership"'s custom action cleanup content to read
-
-# ------------------------------------------------------------------- #
-{
- # change owner of child Incident Reports, Investigations, Blocks
- while (my $link = $self->TicketObj->Members->Next) {
- my $member= $link->BaseObj;
- if ( ($member->QueueObj->Name eq 'Incident Reports' ||
- $member->QueueObj->Name eq 'Investigations' ||
- $member->QueueObj->Name eq 'Blocks' ) &&
- $member->OwnerObj->id != $self->TransactionObj->NewValue) {
- my ($res, $msg);
- my $user = new RT::CurrentUser($self->TransactionObj->CurrentUser);
- $user->Load($self->TransactionObj->Creator);
- my $t = new RT::Ticket($user);
- $t->Load($member->id);
- if ($self->TransactionObj->NewValue == $self->TransactionObj->Creator) {
- if ($self->TransactionObj->CurrentUser->id == $RT::Nobody->id) {
- ($res, $msg) = $t->Take();
- } else {
- ($res, $msg) = $t->Steal();
- }
- } else {
- ($res, $msg) = $t->SetOwner($self->TransactionObj->NewValue);
- }
- $RT::Logger->debug("FixOwnership Scrip: ".$msg)
- }
- }
- return 1;
-}
-# ------------------------------------------------------------------- #
-
-8) RTIR 1.0.3 changes the "FixOwnership" custom scrip action in the
-Incident Reports, Investigations, and Blocks queues from previous
-versions. AFTER Installing RTIR 1.0.3, alter the "FixOwnership"'s
-custom action cleanup content in each of these queues to read
-
-# ------------------------------------------------------------------- #
-{
- # change owner of parent Incident(s)
- while (my $link = $self->TicketObj->MemberOf->Next) {
- my $incident= $link->TargetObj;
- if ( $incident->QueueObj->Name eq 'Incidents' &&
- $incident->OwnerObj->id != $self->TransactionObj->NewValue) {
- my ($res, $msg);
- my $user = new RT::CurrentUser($self->TransactionObj->CurrentUser);
- $user->Load($self->TransactionObj->Creator);
- my $t = new RT::Ticket($user);
- $t->Load($incident->id);
- if ($self->TransactionObj->NewValue == $self->TransactionObj->Creator) {
- ($res, $msg) = $t->Steal();
- } else {
- ($res, $msg) = $t->SetOwner($self->TransactionObj->NewValue);
- }
- $RT::Logger->debug("FixOwnership Scrip: ".$msg)
- }
- }
- return 1;
-}
-# ------------------------------------------------------------------- #
-9) In the Incidents, Incident Reports, Investigations, and Blocks
-Queues, give the DutyTeam group the "ShowTemplate" right.
+REQUIRED PACKAGES:
+------------------
-Upgrading from RTIR 1.0.0:
---------------------------
+o All packages required by core RT
+
+o RT 3.2.1 or later
-RTIR now installs in RT's share/html directory rather than local/html,
-making local modifications to RTIR easier.
+o The Business::Hours module (version 0.05 or later)
-1) IMPORTANT! Back up any modifications that you've made to the
- /opt/rt3/local/html/RTIR directory.
+o The Net::Whois::RIPE module
-2) Remove the old RTIR files:
- rm -r /opt/rt3/local/html/RTIR
+Upgrading instructions:
+-----------------------
-3) Install RTIR by following the instructions below.
+If you've installed a prior version of RTIR, you may need to follow
+special steps to upgrade. See the UPGRADING file for detailed
+information.
+If you are upgrading from a version prior to 1.0.3, you should follow
+each set of upgrade instructions separately.
Installation instructions:
--------------------------
-1) RTIR requires the Business::Hours module (version 0.05 or later)
- and the Net::Whois::RIPE module. You should install them before
- proceeding.
+1) Once RT 3.2 and other required package have been installed and
+ appear to be working properly, cd to the directory into which you
+ unpacked RTIR into.
-2) Install RT 3.0. This version of RTIR requires at least RT
- 3.0.4.
+2) Edit RTIR's Makefile to point to the location of perl on your system:
-3) Once RT 3.0 appears to be happily installed, cd into the directory you
- unpacked RTIR into.
+PERL = /usr/bin/perl
-4) Edit RTIR's Makefile to point to your RT 3 instance.
+2) Edit RTIR's Makefile to point to your RT 3.2 instance:
-5) make sure that mysql or pgsql's commandline tool is in your path.
+RT_ROOT = /opt/rt3
-6) Type "make install".
+3) Make any other necessary changes to the Makefile (if you used RT's
+default configuration, you shouldn't need to make any).
-7) Add the following lines to your /opt/rt3/etc/RT_SiteConfig.pm file:
+4) make sure that mysql or pgsql's commandline tool is in your path.
+
+5) Type "make install".
+
+6) Add the following lines to your /opt/rt3/etc/RT_SiteConfig.pm file:
# The RTIR config file
@@ -280,11 +67,13 @@
require $RTIR_CONFIG_FILE
|| die ("Couldn't load RTIR config file '$RTIR_CONFIG_FILE'\n$@");
-8) If you are installindg RTIR for the first time, initialize the RTIR
- database by typing "make initdb". Do not attempt to re-initialize
- the database if you are upgrading.
+7) If you are installing RTIR for the first time, initialize the RTIR
+ database by typing "make initdb".
+
+ WARNING: Do not attempt to re-initialize the database if you are
+ upgrading.
-9) Stop and start your web server.
+8) Stop and start your web server.
Configuring RTIR
Added: rtir/branches/1.1/UPGRADING
==============================================================================
--- (empty file)
+++ rtir/branches/1.1/UPGRADING Thu Sep 9 17:19:48 2004
@@ -0,0 +1,263 @@
+NOTE: Follow instructions from previous "upgrading from" sections if
+they apply to your installation.
+
+Upgrading from RTIR 1.0.3:
+-----
+
+If you are upgrading RTIR from version 1.0.3, we recommend a clean
+installation. We recommand that you back up and then delete the
+contents of the following directories:
+
+ /opt/rt3/share/html/RTIR/
+ /opt/rt3/share/html/Callbacks/RTIR/
+
+Then, proceed with the installation instructions in the README. Do
+not re-initialize the database.
+
+
+Upgrading from RTIR 1.0.2:
+-----
+1) RTIR 1.0.3 changes the "SetRTIRState" custom scrip action in the
+Incident Reports queue from previous versions. AFTER Installing RTIR
+1.0.3, alter the "SetRTIRState"'s custom action cleanup content to read
+
+# ------------------------------------------------------------------- #
+ my $State;
+ my $cf = RT::CustomField->new($self->TransactionObj->CurrentUser);
+ $cf->LoadByNameAndQueue(Queue => $self->TicketObj->QueueObj->Id, Name => '_RTIR_State');
+ unless ($cf->Id) {
+ return(1);
+ }
+ if ($self->TicketObj->Status eq 'new' or $self->TicketObj->Status eq 'open' or $self->TicketObj->Status eq 'stalled') {
+ $State = 'new';
+ my $parents = RT::Tickets->new($self->TransactionObj->CurrentUser);
+ $parents->LimitHasMember($self->TicketObj->id);
+ $parents->LimitQueue(VALUE => 'Incidents');
+ if ($parents->First) {
+ $State = 'open';
+ }
+ } elsif ($self->TicketObj->Status eq 'resolved') {
+ $State = 'resolved';
+ } elsif ($self->TicketObj->Status eq 'rejected') {
+ $State = 'rejected';
+ } else {
+ return 0;
+ }
+ $self->TicketObj->AddCustomFieldValue(Field => $cf->id, Value => $State);
+ return 1;
+# ------------------------------------------------------------------- #
+
+2) RTIR 1.0.3 changes the "SetRTIRState" custom scrip action in the
+Investigations queue from previous versions. AFTER Installing RTIR
+1.0.3, alter the "SetRTIRState"'s custom action cleanup content to read
+
+# ------------------------------------------------------------------- #
+ my $State;
+ my $cf = RT::CustomField->new($self->TransactionObj->CurrentUser);
+ $cf->LoadByNameAndQueue(Queue => $self->TicketObj->QueueObj->Id, Name => '_RTIR_State');
+ unless ($cf->Id) {
+ return(1);
+ }
+ if ($self->TicketObj->Status eq 'open' or $self->TicketObj->Status eq 'new') {
+ $State = 'open';
+ } elsif ($self->TicketObj->Status eq 'resolved') {
+ $State = 'resolved';
+ } else {
+ return 0;
+ }
+ $self->TicketObj->AddCustomFieldValue(Field => $cf->id, Value => $State);
+ return 1;
+# ------------------------------------------------------------------- #
+
+3) RTIR 1.0.3 changes the "SetRTIRState" custom scrip action in the
+Blocks queue from previous versions. AFTER Installing RTIR
+1.0.3, alter the "SetRTIRState"'s custom action cleanup content to read
+
+# ------------------------------------------------------------------- #
+my $State;
+my $cf = RT::CustomField->new($self->TransactionObj->CurrentUser);
+$cf->LoadByNameAndQueue(Queue => $self->TicketObj->QueueObj->Id, Name => '_RTIR_State');
+unless ($cf->Id) {
+ return(1);
+}
+
+if ($self->TicketObj->Status eq 'new') {
+ $State = 'pending activation';
+} elsif ($self->TicketObj->Status eq 'open') {
+ $State = 'active';
+} elsif ($self->TicketObj->Status eq 'stalled') {
+ $State = 'pending removal';
+} elsif ($self->TicketObj->Status eq 'resolved') {
+ $State = 'removed';
+} else {
+ return 0;
+}
+$self->TicketObj->AddCustomFieldValue(Field => $cf->id, Value => $State);
+return 1;
+# ------------------------------------------------------------------- #
+
+4) RTIR 1.0.3 changes the "SetRTIRState" custom scrip action in the
+Incidents queue from previous versions. AFTER Installing RTIR
+1.0.3, alter the "SetRTIRState"'s custom action cleanup content to read
+
+# ------------------------------------------------------------------- #
+ my $State;
+ my $cf = RT::CustomField->new($self->TransactionObj->CurrentUser);
+ $cf->LoadByNameAndQueue(Queue => $self->TicketObj->QueueObj->Id, Name => '_RTIR_State');
+ unless ($cf->Id) {
+ return(1);
+ }
+ if ($self->TicketObj->Status eq 'new' ||
+ $self->TicketObj->Status eq 'open' ||
+ $self->TicketObj->Status eq 'stalled') {
+ $State = 'open';
+ } elsif ($self->TicketObj->Status eq 'resolved') {
+ $State = 'resolved';
+ } elsif ($self->TicketObj->Status eq 'rejected') {
+ $State = 'abandoned';
+ } else {
+ return 0;
+ }
+ $self->TicketObj->AddCustomFieldValue(Field => $cf->id, Value => $State);
+ return 1;
+# ------------------------------------------------------------------- #
+
+5) RTIR 1.0.3 changes the "SetDates" custom scrip action in the
+Incident Reports queue from previous versions. AFTER Installing RTIR
+1.0.3, alter the "SetDates"'s custom action cleanup content to read
+
+# ------------------------------------------------------------------- #
+my $sla;
+my $date = RT::Date->new($RT::SystemUser);
+$date->SetToNow;
+use Business::Hours;
+my $bizhours = new Business::Hours;
+if ($RT::BusinessHours) {
+ $bizhours->business_hours(%$RT::BusinessHours);
+}
+
+if ($self->TicketObj->FirstCustomFieldValue('_RTIR_SLA')) {
+ $sla = $self->TicketObj->FirstCustomFieldValue('_RTIR_SLA');
+} elsif ($bizhours->first_after($date->Unix) != $date->Unix) {
+ $sla = "Full service: out of hours";
+} else {
+ $sla = "Full service";
+}
+
+my $addminutes = $RT::SLA->{$sla};
+if ($self->TicketObj->StartsObj->AsString eq "Not set") {
+ my $starts = $bizhours->first_after($date->Unix);
+ $date->Set(Format => 'unix', Value => $starts);
+ $self->TicketObj->SetStarts($date->ISO);
+ my $due = $bizhours->add_seconds($date->Unix, $addminutes * 60);
+ $date->Set(Format => 'unix', Value => $due);
+ $self->TicketObj->SetDue($date->ISO);
+}
+my $cf = RT::CustomField->new($self->TransactionObj->CurrentUser);
+$cf->LoadByNameAndQueue(Queue => $self->TicketObj->QueueObj->Id, Name => '_RTIR_SLA');
+unless ($cf->Id) {
+ return(1);
+}
+$self->TicketObj->AddCustomFieldValue(Field => $cf->id, Value => $sla);
+return 1;
+# ------------------------------------------------------------------- #
+
+6) RTIR 1.0.3 changes the "SetHowReported" custom scrip action in the
+Incident Reports queue from previous versions. AFTER Installing RTIR
+1.0.3, alter the "SetHowReported"'s custom action cleanup content to read
+
+# ------------------------------------------------------------------- #
+my $cf = RT::CustomField->new($self->TransactionObj->CurrentUser);
+$cf->LoadByNameAndQueue(Queue => $self->TicketObj->QueueObj->Id, Name => '_RTIR_HowReported');
+unless ($cf->Id) {
+ return(1);
+}
+my $Values = $self->TicketObj->CustomFieldValues($cf->id);
+if (!$Values->Next) {
+ $self->TicketObj->AddCustomFieldValue(Field => $cf->id, Value => "Email");
+}
+ return 1;
+# ------------------------------------------------------------------- #
+
+7) RTIR 1.0.3 changes the "FixOwnership" custom scrip action in the
+Incidents queue from previous versions. AFTER Installing RTIR
+1.0.3, alter the "FixOwnership"'s custom action cleanup content to read
+
+# ------------------------------------------------------------------- #
+{
+ # change owner of child Incident Reports, Investigations, Blocks
+ while (my $link = $self->TicketObj->Members->Next) {
+ my $member= $link->BaseObj;
+ if ( ($member->QueueObj->Name eq 'Incident Reports' ||
+ $member->QueueObj->Name eq 'Investigations' ||
+ $member->QueueObj->Name eq 'Blocks' ) &&
+ $member->OwnerObj->id != $self->TransactionObj->NewValue) {
+ my ($res, $msg);
+ my $user = new RT::CurrentUser($self->TransactionObj->CurrentUser);
+ $user->Load($self->TransactionObj->Creator);
+ my $t = new RT::Ticket($user);
+ $t->Load($member->id);
+ if ($self->TransactionObj->NewValue == $self->TransactionObj->Creator) {
+ if ($self->TransactionObj->CurrentUser->id == $RT::Nobody->id) {
+ ($res, $msg) = $t->Take();
+ } else {
+ ($res, $msg) = $t->Steal();
+ }
+ } else {
+ ($res, $msg) = $t->SetOwner($self->TransactionObj->NewValue);
+ }
+ $RT::Logger->debug("FixOwnership Scrip: ".$msg)
+ }
+ }
+ return 1;
+}
+# ------------------------------------------------------------------- #
+
+8) RTIR 1.0.3 changes the "FixOwnership" custom scrip action in the
+Incident Reports, Investigations, and Blocks queues from previous
+versions. AFTER Installing RTIR 1.0.3, alter the "FixOwnership"'s
+custom action cleanup content in each of these queues to read
+
+# ------------------------------------------------------------------- #
+{
+ # change owner of parent Incident(s)
+ while (my $link = $self->TicketObj->MemberOf->Next) {
+ my $incident= $link->TargetObj;
+ if ( $incident->QueueObj->Name eq 'Incidents' &&
+ $incident->OwnerObj->id != $self->TransactionObj->NewValue) {
+ my ($res, $msg);
+ my $user = new RT::CurrentUser($self->TransactionObj->CurrentUser);
+ $user->Load($self->TransactionObj->Creator);
+ my $t = new RT::Ticket($user);
+ $t->Load($incident->id);
+ if ($self->TransactionObj->NewValue == $self->TransactionObj->Creator) {
+ ($res, $msg) = $t->Steal();
+ } else {
+ ($res, $msg) = $t->SetOwner($self->TransactionObj->NewValue);
+ }
+ $RT::Logger->debug("FixOwnership Scrip: ".$msg)
+ }
+ }
+ return 1;
+}
+# ------------------------------------------------------------------- #
+
+9) In the Incidents, Incident Reports, Investigations, and Blocks
+Queues, give the DutyTeam group the "ShowTemplate" right.
+
+Upgrading from RTIR 1.0.0:
+--------------------------
+
+RTIR now installs in RT's share/html directory rather than local/html,
+making local modifications to RTIR easier.
+
+1) IMPORTANT! Back up any modifications that you've made to the
+ /opt/rt3/local/html/RTIR directory.
+
+2) Remove the old RTIR files:
+
+ rm -r /opt/rt3/local/html/RTIR
+
+3) Install RTIR by following the instructions below.
+
+
More information about the Rt-commit
mailing list