[rt-users] [rt-user] PATCH: RT.pm.in for MasonComponentRoot

Susan McClure smcclure at rice.edu
Tue Sep 15 20:28:24 EDT 2009


Was this ever resolved or determined to be a bug?

I am experiencing the same thing, installing RT 3.8.4, but when I edit 
my lib/RT.pm
file to make the Mason components absolute paths, I still have the error:

============================================
[Tue Sep 15 19:17:32 2009] [info] Server: Apache/2.2.3, Interface: 
mod_ssl/2.2.3, Library: OpenSSL/0.9.8e-fips-rhel5
[Tue Sep 15 19:17:32 2009] [notice] Apache/2.2.3 (Red Hat) configured -- 
resuming normal operations
[Tue Sep 15 19:17:32 2009] [info] Server built: Jul 15 2009 09:02:25
[Tue Sep 15 19:17:32 2009] [debug] prefork.c(991): AcceptMutex: sysvsem 
(default: sysvsem)
[Wed Sep 16 00:17:50 2009] [warning]: [Mason] Cannot resolve file to 
component: /usr/site/rt-3.8/share/html/index.html (is file outside 
component root?) at 
/usr/lib/perl5/site_perl/5.8.8/HTML/Mason/ApacheHandler.pm line 852. 
(/usr/lib/perl5/site_perl/5.8.8/HTML/Mason/ApacheHandler.pm:852)
=====================

I configured with:
================
 ./configure --prefix=/usr/site/rt-3.8 --with-db-type=Pg 
--with-db-dba=postgres --with-db-database=rt38 --with-web-user=cwis 
--with-web-group=cwis --with-web-handler=modperl2 
--with-apachectl=/usr/sbin --enable-gd --enable-graphviz --enable-gpg
========================

prefix /usr/site/rt-3.8 resolves to absolute path:  
/opt/opt.CORE/rt-3.8/rhel5

So I changed my lib/RT.pm to have:
............   lib/RT.pm  ..............
...............
> # END BPS TAGGED BLOCK }}}
>
> use strict;
> use warnings;
> package RT;
>
> use File::Spec ();
> use Cwd ();
> use vars qw($Config $System $SystemUser $Nobody $Handle $Logger 
> $_INSTALL_MODE);
>
> our $VERSION = '3.8.4';
>
> #our $BasePath = '/usr/site/rt-3.8/';
> our $BasePath = '/opt/opt.CORE/rt-3.8/rhel5/';
> our $EtcPath = 'etc';
> our $BinPath = 'bin';
> our $SbinPath = 'sbin';
> our $VarPath = 'var';
>
>> our $LocalPath = 'local';
>> our $LocalEtcPath = 'local/etc';
>> our $LocalLibPath               =       'local/lib';
>> our $LocalLexiconPath = 'local/po';
>> our $LocalPluginPath = $LocalPath."/plugins";
>>
>> # $MasonComponentRoot is where your rt instance keeps its mason html 
>> files
>> #our $MasonComponentRoot = 'share/html';
>> our $MasonComponentRoot = '/opt/opt.CORE/rt-3.8/rhel5/share/html';
>>
>> # $MasonLocalComponentRoot is where your rt instance keeps its site-local
>> # mason html files.
>> #our $MasonLocalComponentRoot = 'local/html';
>> our $MasonLocalComponentRoot = '/opt/opt.CORE/rt-3.8/rhel5/local/html';
>>
>> # $MasonDataDir Where mason keeps its datafiles
>> #our $MasonDataDir = 'var/mason_data';
>> our $MasonDataDir = '/opt/opt.CORE/rt-3.8/rhel5/var/mason_data';
>>
>> # RT needs to put session data (for preserving state between connections
>> # via the web interface)
>> #our $MasonSessionDir = 'var/session_data';
>> our $MasonSessionDir = '/opt/opt.CORE/rt-3.8/rhel5/var/session_data';
>>
>> unless (  File::Spec->file_name_is_absolute($EtcPath) ) {
>>
>> # if BasePath exists and is absolute, we won't infer it from 
>> $INC{'RT.pm'}.
>> # otherwise RT.pm will make src dir(where we configure RT) be the 
>> BasePath
>> # instead of the --prefix one
>>     unless ( -d $BasePath && 
>> File::Spec->file_name_is_absolute($BasePath) )
>        my $pm_path = ( File::Spec->splitpath( $INC{'RT.pm'} ) )[1];
>
>        # need rel2abs here is to make sure path is absolute, since 
> $INC{'RT.pm'}
>        # is not always absolute
>         $BasePath =
>           File::Spec->rel2abs(
>             File::Spec->catdir( $pm_path, File::Spec->updir ) );
>     }
>
>     $BasePath = Cwd::realpath( $BasePath );
>
>     for my $path ( qw/EtcPath BinPath SbinPath VarPath LocalPath 
> LocalEtcPath
>             LocalLibPath LocalLexiconPath LocalPluginPath 
> MasonComponentRoot            MasonLocalComponentRoot MasonDataDir 
> MasonSessionDir/ ) {
>         no strict 'refs';
>         # just change relative ones
>         $$path = File::Spec->catfile( $BasePath, $$path )
>           unless File::Spec->file_name_is_absolute( $$path );
>     }
> }
>
>
> =head1 NAME
>
> RT - Request Tracker
>
> =head1 SYNOPSIS
>
> A fully featured request tracker package
>
> =head1 DESCRIPTION
>
> =head2 INITIALIZATION
> :
===================================================

===   perl  version =====
> root at rt2:/usr/site/rt-3.8/lib> /usr/bin/perl -V
> Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
>   Platform:
>     osname=linux, osvers=2.6.18-128.1.10.el5, 
> archname=x86_64-linux-thread-multi
>     uname='linux ls20-bc2-13.build.redhat.com 2.6.18-128.1.10.el5 #1 
> smp wed apr 29 13:53:08 edt 2009 x86_64 x86_64 x86_64 gnulinux '
>     config_args='-des -Doptimize=-O2 -g -pipe -Wall 
> -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector 
> --param=ssp-buffer-size=4 -m64 -mtune=generic -Dversion=5.8.8 
> -Dmyhostname=localhost -Dperladmin=root at localhost -Dcc=gcc -Dcf_by=Red 
> Hat, Inc. -Dinstallprefix=/usr -Dprefix=/usr -Dlibpth=/usr/local/lib64 
> /lib64 /usr/lib64 -Dprivlib=/usr/lib/perl5/5.8.8 
> -Dsitelib=/usr/lib/perl5/site_perl/5.8.8 
> -Dvendorlib=/usr/lib/perl5/vendor_perl/5.8.8 
> -Darchlib=/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi 
> -Dsitearch=/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi 
> -Dvendorarch=/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi 
> -Darchname=x86_64-linux-thread-multi -Dvendorprefix=/usr 
> -Dsiteprefix=/usr -Duseshrplib -Dusethreads -Duseithreads 
> -Duselargefiles -Dd_dosuid -Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm 
> -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl=n 
> -Ubincompat5005 -Uversiononly -Dpager=/usr/bin/less -isr 
> -Dd_gethostent_r_proto -Ud_endhostent_r_proto -Ud_sethostent_r_proto 
> -Ud_endprotoent_r_proto -Ud_setprotoent_r_proto -Ud_endservent_r_proto 
> -Ud_setservent_r_proto -Dinc_version_list=5.8.7 5.8.6 5.8.5 
> -Dscriptdir=/usr/bin'
>     hint=recommended, useposix=true, d_sigaction=define
>     usethreads=define use5005threads=undef useithreads=define 
> usemultiplicity=define
>     useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
>     use64bitint=define use64bitall=define uselongdouble=undef
>     usemymalloc=n, bincompat5005=undef
>   Compiler:
>     cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE 
> -fno-strict-aliasing -pipe -Wdeclaration-after-statement 
> -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 
> -I/usr/include/gdbm',
>     optimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions 
> -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic',
>     cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe 
> -Wdeclaration-after-statement -I/usr/local/include -I/usr/include/gdbm'
>     ccversion='', gccversion='4.1.2 20080704 (Red Hat 4.1.2-44)', 
> gccosandvers=''
>     intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
>     d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
>     ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', 
> lseeksize=8
>     alignbytes=8, prototype=define
>   Linker and Libraries:
>     ld='gcc', ldflags =''
>     libpth=/usr/local/lib64 /lib64 /usr/lib64
>     libs=-lresolv -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc
>     perllibs=-lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
>     libc=, so=so, useshrplib=true, libperl=libperl.so
>     gnulibc_version='2.5'
>   Dynamic Linking:
>     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E 
> -Wl,-rpath,/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE'
>     cccdlflags='-fPIC', lddlflags='-shared -O2 -g -pipe -Wall 
> -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector 
> --param=ssp-buffer-size=4 -m64 -mtune=generic'
>
>
> Characteristics of this binary (from libperl):
>   Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT
>                         PERL_MALLOC_WRAP USE_64_BIT_ALL USE_64_BIT_INT
>                         USE_ITHREADS USE_LARGE_FILES USE_PERLIO
>                         USE_REENTRANT_API
>   Built under linux
>   Compiled at Jul  2 2009 05:49:38
>   @INC:
>     /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi
>     /usr/lib/perl5/site_perl/5.8.8
>     /usr/lib/perl5/site_perl
>     /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi
>     /usr/lib/perl5/vendor_perl/5.8.8
>     /usr/lib/perl5/vendor_perl
>     /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi
>     /usr/lib/perl5/5.8.8
================================
======   httpd version info   ============
> root at rt2:/usr/site/rt-3.8/lib> /usr/sbin/httpd -V
> Server version: Apache/2.2.3
> Server built:   Jul 15 2009 09:02:25
> Server's Module Magic Number: 20051115:3
> Server loaded:  APR 1.2.7, APR-Util 1.2.7
> Compiled using: APR 1.2.7, APR-Util 1.2.7
> Architecture:   64-bit
> Server MPM:     Prefork
>   threaded:     no
>     forked:     yes (variable process count)
> Server compiled with....
>  -D APACHE_MPM_DIR="server/mpm/prefork"
>  -D APR_HAS_SENDFILE
>  -D APR_HAS_MMAP
>  -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
>  -D APR_USE_SYSVSEM_SERIALIZE
>  -D APR_USE_PTHREAD_SERIALIZE
>  -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
>  -D APR_HAS_OTHER_CHILD
>  -D AP_HAVE_RELIABLE_PIPED_LOGS
>  -D DYNAMIC_MODULE_LIMIT=128
>  -D HTTPD_ROOT="/etc/httpd"
>  -D SUEXEC_BIN="/usr/sbin/suexec"
>  -D DEFAULT_PIDLOG="logs/httpd.pid"
>  -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
>  -D DEFAULT_LOCKFILE="logs/accept.lock"
>  -D DEFAULT_ERRORLOG="logs/error_log"
>  -D AP_TYPES_CONFIG_FILE="conf/mime.types"
>  -D SERVER_CONFIG_FILE="conf/httpd.conf"
==================================

Thanks for any help you can provide.

Susie








More information about the rt-users mailing list