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

Lander, Scott slander at hearstsc.com
Wed Sep 16 07:59:03 EDT 2009


It is a problem with Mason and links, I think.   Easiest fix is to not use a link, and either reconfigure with prefix /opt/opt.CORE/rt-3.8/rhel5 or, move the rt3.8 directory to /usr/site/rt-3.8

-----Original Message-----
From: rt-users-bounces at lists.bestpractical.com [mailto:rt-users-bounces at lists.bestpractical.com] On Behalf Of Susan McClure
Sent: Tuesday, September 15, 2009 8:28 PM
To: rt-users at lists.bestpractical.com
Cc: smcclure at rice.edu
Subject: Re: [rt-users] [rt-user] PATCH: RT.pm.in for MasonComponentRoot

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-mu
> lti -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





_______________________________________________
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com Commercial support: sales at bestpractical.com


Discover RT's hidden secrets with RT Essentials from O'Reilly Media.
Buy a copy at http://rtbook.bestpractical.com
------------------------------------------------------------------------------------
This e-mail message is intended only for the personal use of the recipient(s) named above. If you are not an intended recipient, you may not review, copy or distribute this message. If you have received this communication in error, please notify the Hearst Service Center (cadmin at hearstsc.com) immediately by email and delete the original message.
------------------------------------------------------------------------------------




More information about the rt-users mailing list