ports/53205: Make rt3 work with Apache2/mod_perl2
Tim Bishop
tim at bishnet.net
Wed Jun 11 15:10:18 UTC 2003
>Number: 53205
>Category: ports
>Synopsis: Make rt3 work with Apache2/mod_perl2
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Wed Jun 11 08:10:15 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator: Tim Bishop
>Release: FreeBSD 4.8-STABLE i386
>Organization:
>Environment:
System: FreeBSD pendennis.ukc.ac.uk 4.8-STABLE FreeBSD 4.8-STABLE #2: Fri Apr 4 20:34:25 BST 2003 tdb at pendennis.ukc.ac.uk:/usr/obj/usr/src/sys/PENDENNIS i386
>Description:
In it's current state the rt3 port won't compile/work with
apache2 and mod_perl2.
>How-To-Repeat:
>Fix:
This patch solves this, and a few other minor problems.
First, apply ports/53204 to fix an issue with p5-Apache-DBI.
The first change is the dependency list. I followed the
dependency list given on rt's website, and updated the port.
There's a few in the port that aren't mentioned on the rt
site - I've dropped these in this patch and it seems to
work. I guess the maintainer will know why they were there
in the first place - so they might decide to keep them. I
also added a couple of dependencies that were in the list
on the rt website, but not in the port.
If WITH_APACHE2 is defined I've added two DEPEND_ARGS. The
WITHOUT_MODPERL is for the p5-HTML-Mason port which tries
to use mod_perl (not mod_perl2), and the second is for the
p5-Apache-DBI port. I wonder if there's a way to do this
in the dependency list so they're tied to the right port
only?
To make Apache start with rt3/mason/mod_perl2 a small perl
script needs to be run prior to the main rt3 script. This
script is in the files directory and gets installed by the
port. I've added a brief note about it to the pkg-message.
Finally I've updated the pkg-plist for the above new file,
and I've removed the RT_SiteConfig.pm file - it was rather
annoying to see my config get destroyed by portupgrade.
Also added the etc directory, although this makes less sense
with RT_SiteConfig.pm remaining.
Something I haven't patched is the way this port deals with
setting up the database. In my opinion it's "bad" for the
default behaviour to destroy all data during an upgrade -
the port requires UPGRADE to be defined to preserve data.
This could catch people out, especially now portupgrade
makes doing multiple ports a doddle. I'd suggest changing
this, but I'm not sure of the best approach.
--- rt3-ap2mp2.diff begins here ---
diff -ruN rt3.bak/Makefile rt3/Makefile
--- rt3.bak/Makefile Wed Jun 11 15:31:55 2003
+++ rt3/Makefile Wed Jun 11 15:31:47 2003
@@ -7,7 +7,7 @@
PORTNAME= rt3
PORTVERSION= 3.0.2
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= www
MASTER_SITES?= http://www.fsck.com/pub/rt/release/ \
ftp://ftp.eu.uu.net/pub/unix/ticketing/rt/
@@ -21,23 +21,22 @@
${SITE_PERL}/Apache/Session.pm:${PORTSDIR}/www/p5-Apache-Session \
${SITE_PERL}/Cache/Cache.pm:${PORTSDIR}/devel/p5-Cache-Cache \
${SITE_PERL}/CGI/Cookie.pm:${PORTSDIR}/www/p5-CGI.pm \
- ${SITE_PERL}/Date/Format.pm:${PORTSDIR}/devel/p5-TimeDate \
- ${SITE_PERL}/Date/Parse.pm:${PORTSDIR}/devel/p5-TimeDate \
${ARCH_PERL}/DBI.pm:${PORTSDIR}/databases/p5-DBI \
- ${SITE_PERL}/DBIx/DataSource.pm:${PORTSDIR}/databases/p5-DBIx-DataSource \
${SITE_PERL}/DBIx/SearchBuilder.pm:${PORTSDIR}/databases/p5-DBIx-SearchBuilder \
${ARCH_PERL}/Digest/MD5.pm:${PORTSDIR}/security/p5-Digest-MD5 \
+ ${SITE_PERL}/Errno.pm:${PORTSDIR}/devel/p5-Errno \
${SITE_PERL}/Exception/Class.pm:${PORTSDIR}/devel/p5-Exception-Class \
${SITE_PERL}/File/Temp.pm:${PORTSDIR}/devel/p5-File-Temp \
${SITE_PERL}/FreezeThaw.pm:${PORTSDIR}/devel/p5-FreezeThaw \
${SITE_PERL}/Getopt/Long.pm:${PORTSDIR}/devel/p5-Getopt-Long \
${ARCH_PERL}/HTML/Entities.pm:${PORTSDIR}/www/p5-HTML-Parser \
- ${SITE_PERL}/HTML/Formatter.pm:${PORTSDIR}/textproc/p5-HTML-Format \
+ ${SITE_PERL}/HTML/FormatText.pm:${PORTSDIR}/textproc/p5-HTML-Format \
${SITE_PERL}/HTML/TreeBuilder.pm:${PORTSDIR}/www/p5-HTML-Tree \
${SITE_PERL}/Locale/Maketext.pm:${PORTSDIR}/devel/p5-Locale-Maketext \
${SITE_PERL}/Locale/Maketext/Fuzzy.pm:${PORTSDIR}/devel/p5-Locale-Maketext-Fuzzy \
${SITE_PERL}/Locale/Maketext/Lexicon.pm:${PORTSDIR}/devel/p5-Locale-Maketext-Lexicon \
${SITE_PERL}/Log/Dispatch.pm:${PORTSDIR}/devel/p5-Log-Dispatch \
+ ${SITE_PERL}/LWP/UserAgent.pm:${PORTSDIR}/www/p5-libwww \
${SITE_PERL}/Mail/Mailer.pm:${PORTSDIR}/mail/p5-Mail-Tools \
${SITE_PERL}/MIME/Entity.pm:${PORTSDIR}/mail/p5-MIME-Tools \
${SITE_PERL}/MLDBM.pm:${PORTSDIR}/databases/p5-MLDBM \
@@ -50,7 +49,6 @@
${SITE_PERL}/Text/Quoted.pm:${PORTSDIR}/textproc/p5-Text-Quoted \
${SITE_PERL}/Text/Template.pm:${PORTSDIR}/textproc/p5-Text-Template \
${SITE_PERL}/Text/Wrapper.pm:${PORTSDIR}/textproc/p5-Text-Wrapper \
- ${SITE_PERL}/Tie/IxHash.pm:${PORTSDIR}/devel/p5-Tie-IxHash \
${ARCH_PERL}/Time/HiRes.pm:${PORTSDIR}/devel/p5-Time-HiRes \
${SITE_PERL}/Time/ParseDate.pm:${PORTSDIR}/devel/p5-Time-modules \
${SITE_PERL}/WWW/Mechanize.pm:${PORTSDIR}/www/p5-WWW-Mechanize
@@ -80,6 +78,8 @@
.if defined(WITH_APACHE2)
APACHE_PORT?= ${PORTSDIR}/www/apache2
BUILD_DEPENDS+= ${LOCALBASE}/libexec/apache2/mod_perl.so:${PORTSDIR}/www/mod_perl2
+DEPENDS_ARGS+= WITHOUT_MODPERL=yes
+DEPENDS_ARGS+= WITH_MODPERL2=yes
.else
APACHE_PORT?= ${PORTSDIR}/www/apache13
BUILD_DEPENDS+= ${LOCALBASE}/libexec/apache/libperl.so:${PORTSDIR}/www/mod_perl
@@ -132,6 +132,9 @@
post-install:
@${INSTALL_DATA} ${WRKSRC}/README ${RT_PATH}/README
+.if defined(WITH_APACHE2)
+ @${INSTALL_SCRIPT} ${FILESDIR}/ap2mp2-fix.pl ${RT_PATH}/bin
+.endif
.if defined(UPGRADE)
@echo Upgrade of RT3 complete.
.else
diff -ruN rt3.bak/files/ap2mp2-fix.pl rt3/files/ap2mp2-fix.pl
--- rt3.bak/files/ap2mp2-fix.pl Thu Jan 1 01:00:00 1970
+++ rt3/files/ap2mp2-fix.pl Wed Jun 11 00:29:29 2003
@@ -0,0 +1,10 @@
+# temp fix for mp2-09... make a dummy Apache->request
+require Apache::RequestUtil;
+no warnings 'redefine';
+my $sub = *Apache::request{CODE};
+*Apache::request = sub {
+ my $r;
+ eval { $r = $sub->('Apache'); };
+ # warn $@ if $@;
+ return $r;
+};
diff -ruN rt3.bak/pkg-message rt3/pkg-message
--- rt3.bak/pkg-message Tue Apr 29 06:10:28 2003
+++ rt3/pkg-message Wed Jun 11 00:37:30 2003
@@ -6,9 +6,12 @@
the default config file (%%RT_PATH%%/etc/RT_Config.pm).
2. Configure the email and web gateways. Please refer to
'SETTING UP THE MAIL GATEWAY' in %%RT_PATH%%/README
-3. Restart Apache.
-4. Do remember to *CHANGE* the root's password for the web interface.
+3. For Apache2/mod_perl2 you'll probably need to add the
+ following line above the webmux.pl line in httpd.conf:
+ PerlRequire %%RT_PATH%%/bin/ap2mp2-fix.pl
+4. Restart Apache.
+5. Do remember to *CHANGE* the root's password for the web interface.
The default is "password" (without the quotes.)
-5. Configure RT per the instructions at http://www.fsck.com/rtfm/.
+6. Configure RT per the instructions at http://www.fsck.com/rtfm/.
=====================================================================
diff -ruN rt3.bak/pkg-plist rt3/pkg-plist
--- rt3.bak/pkg-plist Thu May 15 19:59:34 2003
+++ rt3/pkg-plist Wed Jun 11 08:48:39 2003
@@ -1,5 +1,4 @@
rt3/etc/RT_Config.pm
-rt3/etc/RT_SiteConfig.pm
rt3/etc/initialdata
rt3/etc/schema.SQLite
rt3/etc/schema.Pg
@@ -349,6 +348,7 @@
rt3/bin/mason_handler.svc
rt3/bin/mason_handler.fcgi
rt3/bin/rt-mailgate
+rt3/bin/ap2mp2-fix.pl
rt3/sbin/rt-test-dependencies
rt3/sbin/rt-setup-database
rt3/README
@@ -390,6 +390,7 @@
@dirrm rt3/sbin
@dirrm rt3/local/po
@dirrm rt3/local/html
+ at dirrm rt3/local/etc
@dirrm rt3/local
@dirrm rt3/lib/t/regression
@dirrm rt3/lib/t/data
--- rt3-ap2mp2.diff ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list