[freeside-commits] freeside/rt/lib RT.pm,1.1.1.2,1.3

Ivan,,, ivan at wavetail.420.am
Wed Aug 1 15:20:35 PDT 2007


Update of /home/cvs/cvsroot/freeside/rt/lib
In directory wavetail:/tmp/cvs-serv22987/lib

Modified Files:
	RT.pm 
Log Message:
commit these RT differences, seem to be mostly in autogen'ed stuff

Index: RT.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/rt/lib/RT.pm,v
retrieving revision 1.1.1.2
retrieving revision 1.3
diff -u -d -r1.1.1.2 -r1.3
--- RT.pm	11 Mar 2004 02:00:59 -0000	1.1.1.2
+++ RT.pm	1 Aug 2007 22:20:32 -0000	1.3
@@ -1,29 +1,48 @@
-# BEGIN LICENSE BLOCK
+# BEGIN BPS TAGGED BLOCK {{{
 # 
-# Copyright (c) 1996-2002 Jesse Vincent <jesse at bestpractical.com>
+# COPYRIGHT:
+#  
+# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC 
+#                                          <jesse at bestpractical.com>
 # 
-# (Except where explictly superceded by other copyright notices)
+# (Except where explicitly superseded by other copyright notices)
+# 
+# 
+# LICENSE:
 # 
 # This work is made available to you under the terms of Version 2 of
 # the GNU General Public License. A copy of that license should have
 # been provided with this software, but in any event can be snarfed
-# from www.gnu.org
+# from www.gnu.org.
 # 
 # This work is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 # General Public License for more details.
 # 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 # 
-# Unless otherwise specified, all modifications, corrections or
-# extensions to this work which alter its source code become the
-# property of Best Practical Solutions, LLC when submitted for
-# inclusion in the work.
 # 
+# CONTRIBUTION SUBMISSION POLICY:
 # 
-# END LICENSE BLOCK
-
-
+# (The following paragraph is not intended to limit the rights granted
+# to you to modify and distribute this software under the terms of
+# the GNU General Public License and is only of importance to you if
+# you choose to contribute your changes and enhancements to the
+# community by submitting them to Best Practical Solutions, LLC.)
+# 
+# By intentionally submitting any modifications, corrections or
+# derivatives to this work, or any other work intended for use with
+# Request Tracker, to Best Practical Solutions, LLC, you confirm that
+# you are the copyright holder for those contributions and you grant
+# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
+# royalty-free, perpetual, license to use, copy, create derivative
+# works based on those contributions, and sublicense and distribute
+# those contributions and any derivatives thereof.
+# 
+# END BPS TAGGED BLOCK }}}
 package RT;
 use strict;
 use RT::I18N;
@@ -33,7 +52,6 @@
 use vars qw($VERSION $System $SystemUser $Nobody $Handle $Logger
         $CORE_CONFIG_FILE
         $SITE_CONFIG_FILE
-        $VENDOR_CONFIG_FILE
         $BasePath
         $EtcPath
         $VarPath
@@ -41,19 +59,23 @@
         $LocalEtcPath
         $LocalLexiconPath
         $LogDir
+        $BinPath
         $MasonComponentRoot
         $MasonLocalComponentRoot
         $MasonDataDir
         $MasonSessionDir
 );
 
-$VERSION = '3.0.9';
+$VERSION = '3.4.5';
 $CORE_CONFIG_FILE = "/opt/rt3/etc/RT_Config.pm";
 $SITE_CONFIG_FILE = "/opt/rt3/etc/RT_SiteConfig.pm";
 
+
+
 $BasePath = '/opt/rt3';
 
 $EtcPath = '/opt/rt3/etc';
+$BinPath = '/opt/rt3/bin';
 $VarPath = '/opt/rt3/var';
 $LocalPath = '/opt/rt3/local';
 $LocalEtcPath = '/opt/rt3/local/etc';
@@ -61,7 +83,7 @@
 
 # $MasonComponentRoot is where your rt instance keeps its mason html files
 
-$MasonComponentRoot = '/opt/rt3/share/html';
+$MasonComponentRoot = '/var/www/freeside/rt';
 
 # $MasonLocalComponentRoot is where your rt instance keeps its site-local
 # mason html files.
@@ -70,7 +92,7 @@
 
 # $MasonDataDir Where mason keeps its datafiles
 
-$MasonDataDir = '/opt/rt3/var/mason_data';
+$MasonDataDir = '/usr/local/etc/freeside/masondata';
 
 # RT needs to put session data (for preserving state between connections
 # via the web interface)
@@ -80,22 +102,26 @@
 
 =head1 NAME
 
-	RT - Request Tracker
+RT - Request Tracker
 
 =head1 SYNOPSIS
 
-	A fully featured request tracker package
+A fully featured request tracker package
 
 =head1 DESCRIPTION
 
+=head2 LoadConfig
 
-=cut
-
-=item LoadConfig
+Load RT's config file.  First, the site configuration file
+(C<RT_SiteConfig.pm>) is loaded, in order to establish overall site
+settings like hostname and name of RT instance.  Then, the core
+configuration file (C<RT_Config.pm>) is loaded to set fallback values
+for all settings; it bases some values on settings from the site
+configuration file.
 
-Load RT's config file. First, go after the core config file. 
-After that, try to load the vendor config.
-After that, go after the site config.
+In order for the core configuration to not override the site's
+settings, the function C<Set> is used; it only sets values if they
+have not been set already.
 
 =cut
 
@@ -110,10 +136,10 @@
     RT::I18N->Init;
 }
 
-=item Init
+=head2 Init
+
+Conenct to the database, set up logging.
 
-    Conenct to the database, set up logging.
-    
 =cut
 
 sub Init {
@@ -131,7 +157,8 @@
   
     $System = RT::System->new();
 
-   InitLogging(); 
+    InitClasses();
+    InitLogging(); 
 }
 
   
@@ -140,7 +167,7 @@
 Get a database connection
 
 =cut
- 
+
 sub ConnectToDatabase {
     require RT::Handle;
     unless ($Handle && $Handle->dbh && $Handle->dbh->ping) {
@@ -154,9 +181,10 @@
 Create the RT::Logger object. 
 
 =cut
+
 sub InitLogging {
 
-    # We have to set the record seperator ($, man perlvar)
+    # We have to set the record separator ($, man perlvar)
     # or Log::Dispatch starts getting
     # really pissy, as some other module we use unsets it.
 
@@ -168,21 +196,24 @@
     $RT::Logger=Log::Dispatch->new();
     
     if ($RT::LogToFile) {
-
-    unless (-d $RT::LogDir && -w $RT::LogDir) {
-        # localizing here would be hard when we don't have a current user yet
-        # die $self->loc("Log directory [_1] not found or couldn't be written.\n RT can't run.", $RT::LogDir);
-        die ("Log directory $RT::LogDir not found or couldn't be written.\n RT can't run.");
-    }
-
-	my $filename;
+	my ($filename, $logdir);
 	if ($RT::LogToFileNamed =~ m![/\\]!) {
 	    # looks like an absolute path.
 	    $filename = $RT::LogToFileNamed;
+	    ($logdir) = $RT::LogToFileNamed =~ m!^(.*[/\\])!;
 	}
 	else {
 	    $filename = "$RT::LogDir/$RT::LogToFileNamed";
+	    $logdir = $RT::LogDir;
 	}
+
+    unless ( -d $logdir && ( ( -f $filename && -w $filename ) || -w $logdir ) ) {
+        # localizing here would be hard when we don't have a current user yet
+        # die $self->loc("Log directory [_1] not found or couldn't be written.\n RT can't run.", $RT::LogDir);
+        die ("Log file $filename couldn't be written or created.\n RT can't run.");
+    }
+
+    package Log::Dispatch::File;
     require Log::Dispatch::File;
 
 
@@ -200,6 +231,7 @@
 		       ));
     }
     if ($RT::LogToScreen) {
+	package Log::Dispatch::Screen;
 	require Log::Dispatch::Screen;
 	$RT::Logger->add(Log::Dispatch::Screen->new
 		     ( name => 'screen',
@@ -213,6 +245,7 @@
 		     ));
     }
     if ($RT::LogToSyslog) {
+	package Log::Dispatch::Syslog;
 	require Log::Dispatch::Syslog;
 	$RT::Logger->add(Log::Dispatch::Syslog->new
 		     ( name => 'syslog',
@@ -231,7 +264,8 @@
                                 return "$p{message} ($filename:$line)\n"}
 				},
              
-		       stderr => 1
+		       stderr => 1,
+               @RT::LogToSyslogConf
 		     ));
     }
 
@@ -244,7 +278,14 @@
 ## Mason).  It will log all problems through the standard logging
 ## mechanism (see above).
 
-$SIG{__WARN__} = sub {$RT::Logger->warning($_[0])};
+$SIG{__WARN__} = sub {
+    my $w = shift;
+    $w =~ s/(?:\r*\n)+$//;
+    # The 'wide character' warnings has to be silenced for now, at least
+    # until HTML::Mason offers a sane way to process both raw output and
+    # unicode strings.
+    $RT::Logger->warning($w) if index($w, 'Wide character in ') != 0;
+};
 
 #When we call die, trap it and log->crit with the value of the die.
 
@@ -264,6 +305,30 @@
 
 }
 
+=head2 InitClasses
+
+Load all modules that define base classes
+
+=cut
+
+sub InitClasses {
+    require RT::Tickets;
+    require RT::Transactions;
+    require RT::Users;
+    require RT::CurrentUser;
+    require RT::Templates;
+    require RT::Queues;
+    require RT::ScripActions;
+    require RT::ScripConditions;
+    require RT::Scrips;
+    require RT::Groups;
+    require RT::GroupMembers;
+    require RT::CustomFields;
+    require RT::CustomFieldValues;
+    require RT::ObjectCustomFields;
+    require RT::ObjectCustomFieldValues;
+}
+
 # }}}
 
 
@@ -275,44 +340,25 @@
     return ($Nobody);
 }
 
-
-=head2 DropSetGIDPermissions
-
-Drops setgid permissions.
-
-=cut
-
-sub DropSetGIDPermissions {
-    # Now that we got the config read in, we have the database 
-    # password and don't need to be setgid
-    # make the effective group the real group
-    $) = $(;
-}
-
-
-=head1 SYNOPSIS
-
 =head1 BUGS
 
-Please report them to rt-3.0-bugs at fsck.com, if you know what's broken and have at least some idea of what needs to be fixed.
-If you're not sure what's going on, report them rt-devel at lists.fsck.com.
+Please report them to rt-bugs at fsck.com, if you know what's broken and have at least 
+some idea of what needs to be fixed.
+
+If you're not sure what's going on, report them rt-devel at lists.bestpractical.com.
 
 =head1 SEE ALSO
 
 L<RT::StyleGuide>
 L<DBIx::SearchBuilder>
 
-
-
 =begin testing
 
-
 ok ($RT::Nobody->Name() eq 'Nobody', "Nobody is nobody");
 ok ($RT::Nobody->Name() ne 'root', "Nobody isn't named root");
 ok ($RT::SystemUser->Name() eq 'RT_System', "The system user is RT_System");
 ok ($RT::SystemUser->Name() ne 'noname', "The system user isn't noname");
 
-
 =end testing
 
 =cut



More information about the freeside-commits mailing list