diff options
author | philip <philip@FreeBSD.org> | 2005-06-09 17:55:49 +0800 |
---|---|---|
committer | philip <philip@FreeBSD.org> | 2005-06-09 17:55:49 +0800 |
commit | 8460b9a4c7cce0b7626d5327f0f99a8b6dadf6d8 (patch) | |
tree | af220848b490b2bb3156948d68865d9a2cfe4a51 | |
parent | 293ec0088d88fb8b022f1b082547ed430cd5437f (diff) | |
download | freebsd-ports-gnome-8460b9a4c7cce0b7626d5327f0f99a8b6dadf6d8.tar.gz freebsd-ports-gnome-8460b9a4c7cce0b7626d5327f0f99a8b6dadf6d8.tar.zst freebsd-ports-gnome-8460b9a4c7cce0b7626d5327f0f99a8b6dadf6d8.zip |
Unbreak after the mod_perl2 API dance.
Approved by: skv (maintainer)
Obtained from: Philip M. Gollucci (pgollucci [at] p6m7g8.com) (largely)
-rw-r--r-- | www/p5-Apache-DBI/Makefile | 4 | ||||
-rw-r--r-- | www/p5-Apache-DBI/files/patch-mp2-api | 121 |
2 files changed, 123 insertions, 2 deletions
diff --git a/www/p5-Apache-DBI/Makefile b/www/p5-Apache-DBI/Makefile index c2fa8adbd2f9..cfee2a0e6b40 100644 --- a/www/p5-Apache-DBI/Makefile +++ b/www/p5-Apache-DBI/Makefile @@ -7,6 +7,7 @@ PORTNAME= Apache-DBI PORTVERSION= 0.94 +PORTREVISION= 1 CATEGORIES= www databases perl5 MASTER_SITES= ${MASTER_SITE_PERL_CPAN} MASTER_SITE_SUBDIR= Apache @@ -16,8 +17,7 @@ MAINTAINER= skv@FreeBSD.org COMMENT= DBI persistent connection, authentication and authorization .if defined(WITH_MODPERL2) -BROKEN= Broken due the new mod_perl2 API -RUN_DEPENDS+= ${SITE_PERL}/${PERL_ARCH}/Apache2/mod_perl.pm:${PORTSDIR}/www/mod_perl2 +RUN_DEPENDS+= ${LOCALBASE}/libexec/apache2/mod_perl.so:${PORTSDIR}/www/mod_perl2 .else RUN_DEPENDS+= ${SITE_PERL}/${PERL_ARCH}/mod_perl.pm:${PORTSDIR}/www/mod_perl .endif diff --git a/www/p5-Apache-DBI/files/patch-mp2-api b/www/p5-Apache-DBI/files/patch-mp2-api new file mode 100644 index 000000000000..ccbd07199610 --- /dev/null +++ b/www/p5-Apache-DBI/files/patch-mp2-api @@ -0,0 +1,121 @@ +--- AuthDBI.pm.orig Mon May 23 09:53:24 2005 ++++ AuthDBI.pm Mon May 23 09:55:38 2005 +@@ -6,13 +6,13 @@ + # 2: full debug output + $Apache::AuthDBI::DEBUG = 0; + +-use constant MP2 => $mod_perl::VERSION >= 1.99; ++use constant MP2 => $ENV{MOD_PERL_API_VERSION} == 2 ? 1 : 0; + + BEGIN { + my @constants = qw( OK AUTH_REQUIRED FORBIDDEN DECLINED SERVER_ERROR ); + if (MP2) { +- require Apache::Const; +- import Apache::Const @constants; ++ require Apache2::Const; ++ import Apache2::Const @constants; + } + else { + require Apache::Constants; +@@ -25,7 +25,9 @@ + + sub push_handlers { + if ( MP2 ) { +- Apache->server->push_handlers(@_); ++ require Apache2::ServerUtil; ++ my $s = Apache2::ServerUtil->server; ++ $s->push_handlers(@_); + } + else { + Apache->push_handlers(@_); +--- DBI.pm.orig Mon May 23 09:49:38 2005 ++++ DBI.pm Mon May 23 10:08:40 2005 +@@ -4,6 +4,7 @@ + # $Id: DBI.pm,v 1.12 2004/02/18 00:18:50 ask Exp $ + + BEGIN { eval { require Apache } } ++BEGIN { eval { require mod_perl2; require Apache2::Module; } } + use DBI (); + use Carp qw(carp); + +@@ -31,11 +32,19 @@ + sub connect_on_init { + # provide a handler which creates all connections during server startup + +- # TODO - Should check for mod_perl 2 and do the right thing there +- carp "Apache.pm was not loaded\n" and return unless $INC{'Apache.pm'}; +- if(!@ChildConnect and Apache->can('push_handlers')) { +- Apache->push_handlers(PerlChildInitHandler => \&childinit); ++ if ($ENV{MOD_PERL_API_VERSION} == 2) { ++ if (!@ChildConnect) { ++ require Apache2::ServerUtil; ++ my $s = Apache2::ServerUtil->server; ++ $s->push_handlers(PerlChildInitHandler => \&childinit); ++ } ++ } else { ++ carp "Apache.pm was not loaded\n" and return unless $INC{'Apache.pm'}; ++ if (!@ChildConnect and Apache->can('push_handlers')) { ++ Apache->push_handlers(PerlChildInitHandler => \&childinit); ++ } + } ++ + # store connections + push @ChildConnect, [@_]; + } +@@ -93,10 +102,16 @@ + + # this PerlCleanupHandler is supposed to initiate a rollback after the script has finished if AutoCommit is off. + my $needCleanup = ($Idx =~ /AutoCommit[^\d]+0/) ? 1 : 0; +- # TODO - Fix mod_perl 2.0 here + if(!$Rollback{$Idx} and $needCleanup and Apache->can('push_handlers')) { + print STDERR "$prefix push PerlCleanupHandler \n" if $Apache::DBI::DEBUG > 1; +- Apache->push_handlers("PerlCleanupHandler", \&cleanup); ++ if ($ENV{MOD_PERL_API_VERSION} == 2) { ++ require Apache2::ServerUtil; ++ my $s = Apache2::ServerUtil->server; ++ $s->push_handlers('PerlCleanupHandler', \&cleanup); ++ } else { ++ Apache->push_handlers('PerlCleanupHandler', \&cleanup); ++ } ++ + # make sure, that the rollback is called only once for every + # request, even if the script calls connect more than once + $Rollback{$Idx} = 1; +@@ -193,9 +208,21 @@ + + + # prepare menu item for Apache::Status +- +-Apache::Status->menu_item( +- ++if ($ENV{MOD_PERL_API_VERSION} == 2) { ++ Apache2::Status->menu_item( ++ 'DBI' => 'DBI connections', ++ sub { ++ my($r, $q) = @_; ++ my(@s) = qw(<TABLE><TR><TD>Datasource</TD><TD>Username</TD></TR>); ++ for (keys %Connected) { ++ push @s, '<TR><TD>', join('</TD><TD>', (split($;, $_))[0,1]), "</TD></TR>\n"; ++ } ++ push @s, '</TABLE>'; ++ return \@s; ++ } ++ ) if Apache2::Module::loaded('Apache2::Status'); ++} else { ++ Apache::Status->menu_item( + 'DBI' => 'DBI connections', + sub { + my($r, $q) = @_; +@@ -206,10 +233,10 @@ + push @s, '</TABLE>'; + return \@s; + } +- +-) if ($INC{'Apache.pm'} # is Apache.pm loaded? ++ ) if ($INC{'Apache.pm'} # is Apache.pm loaded? + and Apache->can('module') # really? + and Apache->module('Apache::Status')); # Apache::Status too? ++} + + 1; + |