Rt-3.4.4 and mod_perl2

Hi RT folks,

Does anyone have rt-3.4.4 working with apache2 and mod_perl2
(mod_perl2-2.0.1, not 1.99)? I’m attempting an upgrade and I’m
a bit stumped. I got the latest 5.4-stable FreeBSD and rebuilt
everything successfully, including rt-3.4.4. But on starting
httpd, I see this error in the apache log:

[error] Can’t locate Apache2.pm in @INC (@INC contains [snip])
at /usr/local/lib/perl5/site_perl/5.8.7/HTML/Mason/ApacheHandler.pm line 270.\nBEGIN failed–compilation aborted at /usr/local/lib/perl5/site_perl/5.8.7/HTML/Mason/ApacheHandler.pm line 281.\nCompilation failed in require at /usr/local/rt3/lib/RT/Interface/Web/Handler.pm line 146.\nCompilation failed in require at (eval 177) line 1.\n
[error] Can’t load Perl file: /usr/local/rt3/bin/webmux.pl

So, in HTML::Mason::ApacheHandler.pm, here’s the problem spot:

use constant APACHE2 => $mod_perl::VERSION >= 1.99;
use constant OK => 0;
use constant DECLINED => -1;
use constant NOT_FOUND => 404;
use constant REDIRECT => 302;

BEGIN {
if (APACHE2) {
require Apache2;
Apache2->import();
require Apache::RequestRec;
require Apache::RequestIO;
require Apache::ServerUtil;
require Apache::Log;
require APR::Table;
} else {
require Apache;
Apache->import();
}
}

I thought that after the mod_perl “great renaming” API change with
mod_perl 2.x, the “require Apache2” is obsolete and the Apache::x and
other modules are being ported to the new API and renamed Apache2::x.
I have this directory in my perl @INC:
/usr/local/lib/perl5/site_perl/5.8.7/mach/
But, there’s no Apache2.pm in there, of course; just an Apache2
directory containing all the individual modules in the new Apache2::x
namespace (Const.pm, etc).

So, the ApacheHandler.pm code looks to me like it only works for people
running 1.99 MP2 and using “use Apache2” and “use Apache::compat”.
Has Mason not been fully ported to mod_perl2.x? I don’t see how this
can be, sincE rt-3.4.4 is supposed to support mod_perl2.x now. What
am I misunderstanding?

Here’s the mod_perl documentation that says to remove “use Apache2”:
http://perl.apache.org/docs/2.0/rename.html

Also, I did see these threads on rt-users:
http://lists.bestpractical.com/pipermail/rt-users/2005-August/033087.html
http://lists.bestpractical.com/pipermail/rt-users/2005-August/033467.html
http://lists.bestpractical.com/pipermail/rt-users/2005-July/032445.html

but haven’t seen anybody saying that it’s working. Is it possible?

Thanks in advance,
Myra

The problem is with Mason (www/p5-HTML-Mason). The version in ports is 1.28 and you need at least 1.30 to play (preferably 1.3101). The quick and dirty way would be to do this:

  1. edit www/p5-HTML-Mason/Makefile. Change version from 1.28 to 1.3101.
  2. Remove www/p5-HTML-Mason/distinfo
  3. install it.

-----Original Message-----
From: rt-users-bounces@lists.bestpractical.com
[mailto:rt-users-bounces@lists.bestpractical.com]On Behalf Of Myra
Chachkin
Sent: Wednesday, September 21, 2005 12:57 PM
To: rt-users@lists.bestpractical.com
Subject: [rt-users] rt-3.4.4 and mod_perl2

Hi RT folks,

Does anyone have rt-3.4.4 working with apache2 and mod_perl2
(mod_perl2-2.0.1, not 1.99)? I’m attempting an upgrade and I’m
a bit stumped. I got the latest 5.4-stable FreeBSD and rebuilt
everything successfully, including rt-3.4.4. But on starting
httpd, I see this error in the apache log:

[error] Can’t locate Apache2.pm in @INC (@INC contains [snip])
at
/usr/local/lib/perl5/site_perl/5.8.7/HTML/Mason/ApacheHandler.
pm line 270.\nBEGIN failed–compilation aborted at
/usr/local/lib/perl5/site_perl/5.8.7/HTML/Mason/ApacheHandler.
pm line 281.\nCompilation failed in require at
/usr/local/rt3/lib/RT/Interface/Web/Handler.pm line
146.\nCompilation failed in require at (eval 177) line 1.\n
[error] Can’t load Perl file: /usr/local/rt3/bin/webmux.pl

So, in HTML::Mason::ApacheHandler.pm, here’s the problem spot:


use constant APACHE2 => $mod_perl::VERSION >= 1.99;
use constant OK => 0;
use constant DECLINED => -1;
use constant NOT_FOUND => 404;
use constant REDIRECT => 302;

BEGIN {
if (APACHE2) {
require Apache2;
Apache2->import();
require Apache::RequestRec;
require Apache::RequestIO;
require Apache::ServerUtil;
require Apache::Log;
require APR::Table;
} else {
require Apache;
Apache->import();
}
}

I thought that after the mod_perl “great renaming” API change with
mod_perl 2.x, the “require Apache2” is obsolete and the Apache::x and
other modules are being ported to the new API and renamed
Apache2::x.
I have this directory in my perl @INC:
/usr/local/lib/perl5/site_perl/5.8.7/mach/
But, there’s no Apache2.pm in there, of course; just an Apache2
directory containing all the individual modules in the new Apache2::x
namespace (Const.pm, etc).

So, the ApacheHandler.pm code looks to me like it only works
for people
running 1.99 MP2 and using “use Apache2” and “use Apache::compat”.
Has Mason not been fully ported to mod_perl2.x? I don’t see how this
can be, sincE rt-3.4.4 is supposed to support mod_perl2.x now. What
am I misunderstanding?

Here’s the mod_perl documentation that says to remove “use Apache2”:
http://perl.apache.org/docs/2.0/rename.html

Also, I did see these threads on rt-users:

http://lists.bestpractical.com/pipermail/rt-users/2005-August/
033087.html
http://lists.bestpractical.com/pipermail/rt-users/2005-August/033467.html
http://lists.bestpractical.com/pipermail/rt-users/2005-July/032445.html

but haven’t seen anybody saying that it’s working. Is it possible?

Thanks in advance,
Myra
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Be sure to check out the RT Wiki at http://wiki.bestpractical.com

Buy your copy of our new book, RT Essentials, today!

Download a free sample chapter from http://rtbook.bestpractical.com

Ah. Forgot. You also have to remove thisline from the Makefile:

CONFIGURE_ARGS+= --no-prompts

That’ll do it. It works for me anyway.

-----Original Message-----
From: Steven E. Ames
Sent: Wednesday, September 21, 2005 2:18 PM
To: ‘Myra Chachkin’; rt-users@lists.bestpractical.com
Subject: RE: [rt-users] rt-3.4.4 and mod_perl2

The problem is with Mason (www/p5-HTML-Mason). The version in
ports is 1.28 and you need at least 1.30 to play (preferably
1.3101). The quick and dirty way would be to do this:

  1. edit www/p5-HTML-Mason/Makefile. Change version from 1.28
    to 1.3101.
  2. Remove www/p5-HTML-Mason/distinfo
  3. install it.

-----Original Message-----
From: rt-users-bounces@lists.bestpractical.com
[mailto:rt-users-bounces@lists.bestpractical.com]On Behalf Of Myra
Chachkin
Sent: Wednesday, September 21, 2005 12:57 PM
To: rt-users@lists.bestpractical.com
Subject: [rt-users] rt-3.4.4 and mod_perl2

Hi RT folks,

Does anyone have rt-3.4.4 working with apache2 and mod_perl2
(mod_perl2-2.0.1, not 1.99)? I’m attempting an upgrade and I’m
a bit stumped. I got the latest 5.4-stable FreeBSD and rebuilt
everything successfully, including rt-3.4.4. But on starting
httpd, I see this error in the apache log:

[error] Can’t locate Apache2.pm in @INC (@INC contains [snip])
at
/usr/local/lib/perl5/site_perl/5.8.7/HTML/Mason/ApacheHandler.
pm line 270.\nBEGIN failed–compilation aborted at
/usr/local/lib/perl5/site_perl/5.8.7/HTML/Mason/ApacheHandler.
pm line 281.\nCompilation failed in require at
/usr/local/rt3/lib/RT/Interface/Web/Handler.pm line
146.\nCompilation failed in require at (eval 177) line 1.\n
[error] Can’t load Perl file: /usr/local/rt3/bin/webmux.pl

So, in HTML::Mason::ApacheHandler.pm, here’s the problem spot:


use constant APACHE2 => $mod_perl::VERSION >= 1.99;
use constant OK => 0;
use constant DECLINED => -1;
use constant NOT_FOUND => 404;
use constant REDIRECT => 302;

BEGIN {
if (APACHE2) {
require Apache2;
Apache2->import();
require Apache::RequestRec;
require Apache::RequestIO;
require Apache::ServerUtil;
require Apache::Log;
require APR::Table;
} else {
require Apache;
Apache->import();
}
}

I thought that after the mod_perl “great renaming” API change with
mod_perl 2.x, the “require Apache2” is obsolete and the
Apache::x and
other modules are being ported to the new API and renamed
Apache2::x.
I have this directory in my perl @INC:
/usr/local/lib/perl5/site_perl/5.8.7/mach/
But, there’s no Apache2.pm in there, of course; just an Apache2
directory containing all the individual modules in the new
Apache2::x
namespace (Const.pm, etc).

So, the ApacheHandler.pm code looks to me like it only works
for people
running 1.99 MP2 and using “use Apache2” and “use Apache::compat”.
Has Mason not been fully ported to mod_perl2.x? I don’t
see how this
can be, sincE rt-3.4.4 is supposed to support mod_perl2.x
now. What
am I misunderstanding?

Here’s the mod_perl documentation that says to remove “use Apache2”:
http://perl.apache.org/docs/2.0/rename.html

Also, I did see these threads on rt-users:

http://lists.bestpractical.com/pipermail/rt-users/2005-August/
033087.html

http://lists.bestpractical.com/pipermail/rt-users/2005-August/
033467.html
http://lists.bestpractical.com/pipermail/rt-users/2005-July/032445.html

but haven’t seen anybody saying that it’s working. Is it possible?

Thanks in advance,
Myra
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Be sure to check out the RT Wiki at http://wiki.bestpractical.com

Buy your copy of our new book, RT Essentials, today!

Download a free sample chapter from http://rtbook.bestpractical.com