summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mod_perl-2.0.4-multilib.patch32
-rw-r--r--mod_perl-httpd24-maps.patch82
-rw-r--r--mod_perl-httpd24.patch533
-rw-r--r--mod_perl.spec51
4 files changed, 31 insertions, 667 deletions
diff --git a/mod_perl-2.0.4-multilib.patch b/mod_perl-2.0.4-multilib.patch
deleted file mode 100644
index 34234a4..0000000
--- a/mod_perl-2.0.4-multilib.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-
-Generate the XS typemap files in sorted order; ensures that the
-devel package contents do not differe across multilib platforms.
-
---- mod_perl-2.0.4/lib/ModPerl/TypeMap.pm.multilib
-+++ mod_perl-2.0.4/lib/ModPerl/TypeMap.pm
-@@ -442,12 +442,12 @@ sub typedefs_code {
- $code .= qq{\#include "$_"\n}
- }
-
-- for my $t (@{ $self->{struct} }) {
-+ for my $t (sort {$a->[1] cmp $b->[1]} @{ $self->{struct} }) {
- next if $seen{ $t->[1] }++;
- $code .= "typedef $t->[0] * $t->[1];\n";
- }
-
-- for my $t (@{ $self->{typedef} }) {
-+ for my $t (sort {$a->[1] cmp $b->[1]} @{ $self->{typedef} }) {
- next if $seen{ $t->[1] }++;
- $code .= "typedef $t->[0] $t->[1];\n";
- }
-@@ -470,7 +470,9 @@ sub sv_convert_code {
- my %seen;
- my $code = "";
-
-- while (my ($ctype, $ptype) = each %$map) {
-+ for my $ctype (sort keys %$map) {
-+ my $ptype = $map->{$ctype};
-+
- next if $self->special($ptype);
- next if $ctype =~ /\s/;
- my $class = $ptype;
diff --git a/mod_perl-httpd24-maps.patch b/mod_perl-httpd24-maps.patch
deleted file mode 100644
index f443b66..0000000
--- a/mod_perl-httpd24-maps.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-diff --git a/xs/maps/apache2_structures.map b/xs/maps/apache2_structures.map
-index f86ec93..cca915b 100644
---- a/xs/maps/apache2_structures.map
-+++ b/xs/maps/apache2_structures.map
-@@ -2,6 +2,20 @@
-
- # for mapping see %ModPerl::MapUtil::disabled_map in
- # lib/ModPerl/MapUtil.pm
-+# the mapping happens in lib/ModPerl/StructureMap.pm: sub parse
-+# '<' => 'auto-generated but gives only a read-only access'
-+# '&' => 'RDWR accessor to a char* field, supporting undef arg'
-+# '$' => 'RONLY accessor, with WRITE accessor before child_init'
-+# '%' => like $, but makes sure that for the write accessor the
-+# original perl scalar can change or go away w/o affecting
-+# the object
-+# my %disabled_map = (
-+# '!' => 'disabled or not yet implemented',
-+# '~' => 'implemented but not auto-generated',
-+# '-' => 'likely never be available to Perl',
-+# '>' => '"private" to apache',
-+# '?' => 'unclassified',
-+# );
-
- IGNORE: ap_LINK_ ap_filter_func ap_bucket_error ap_listen_rec core_net_rec
-
-@@ -69,6 +83,8 @@ IGNORE: ap_LINK_ ap_filter_func ap_bucket_error ap_listen_rec core_net_rec
- proto_output_filters
- proto_input_filters
- ? eos_sent
-+< useragent_addr
-+ useragent_ip
- </request_rec>
-
- <server_rec>
-@@ -78,10 +94,12 @@ IGNORE: ap_LINK_ ap_filter_func ap_bucket_error ap_listen_rec core_net_rec
- - defn_line_number
- % server_admin
- % server_hostname
-+% server_scheme
- $ port
- % error_fname
- $ error_log
- $ loglevel
-+$ log
- < is_virtual
- < module_config
- < lookup_defaults
-@@ -97,6 +115,7 @@ $ keep_alive
- $ limit_req_line
- $ limit_req_fieldsize
- $ limit_req_fields
-+ context
- </server_rec>
-
- <conn_rec>
-@@ -104,6 +123,8 @@ $ limit_req_fields
- < base_server
- > vhost_lookup_data
- < local_addr
-+< client_addr
-+ client_ip
- < local_ip
- < local_host
- < remote_addr
-@@ -121,6 +142,8 @@ $ limit_req_fields
- output_filters
- < sbh
- < bucket_alloc
-+< log
-+< log_id
- </conn_rec>
-
- !<server_addr_rec>
-@@ -268,3 +291,8 @@ $ limit_req_fields
- p
- sa
- </ap_pod_t>
-+
-+<ap_logconf>
-+% level
-+% module_levels
-+</ap_logconf>
diff --git a/mod_perl-httpd24.patch b/mod_perl-httpd24.patch
deleted file mode 100644
index d4e185d..0000000
--- a/mod_perl-httpd24.patch
+++ /dev/null
@@ -1,533 +0,0 @@
-diff --git a/lib/Apache2/ParseSource.pm b/lib/Apache2/ParseSource.pm
-index 8027548..0664af1 100644
---- a/lib/Apache2/ParseSource.pm
-+++ b/lib/Apache2/ParseSource.pm
-@@ -73,6 +73,9 @@ my @c_scan_defines = (
- 'CORE_PRIVATE', #so we get all of apache
- 'MP_SOURCE_SCAN', #so we can avoid some c-scan barfing
- '_NETINET_TCP_H', #c-scan chokes on netinet/tcp.h
-+ '_BYTESWAP_H', #c-scan chokes on byteswap.h
-+ '_BITS_BYTESWAP_H', #c-scan chokes on byteswap.h
-+ 'Expat_INCLUDED', #c-scan chokes on expath.h
- # 'APR_OPTIONAL_H', #c-scan chokes on apr_optional.h
- 'apr_table_do_callback_fn_t=void', #c-scan chokes on function pointers
- );
-@@ -116,6 +119,7 @@ sub scan {
- sub include_dirs {
- my $self = shift;
- ($self->config->apxs('-q' => 'INCLUDEDIR'),
-+ $self->config->apxs('-q' => 'APR_INCLUDEDIR'),
- $self->config->mp_include_dir);
- }
-
-@@ -139,7 +143,8 @@ sub find_includes {
- apr_optional mod_include mod_cgi
- mod_proxy mod_ssl ssl_ apr_anylock
- apr_rmm ap_config mod_log_config
-- mod_perl modperl_ apreq);
-+ mod_perl modperl_ apreq mod_cache
-+ mod_serf mod_dav);
- $unwanted = qr|^$unwanted|;
- my $wanted = '';
-
-@@ -229,7 +234,7 @@ sub generate_cscan_file {
-
- my %defines_wanted = (
- 'Apache2::Const' => {
-- common => [qw{OK DECLINED DONE}],
-+ common => [qw{OK DECLINED DONE PROXYREQ PROXYREQ_REVERSE}],
- config => [qw{DECLINE_CMD}],
- context => [qw(NOT_IN_ GLOBAL_ONLY)],
- http => [qw{HTTP_}],
-@@ -280,6 +285,9 @@ my %enums_wanted = (
-
- my $defines_unwanted = join '|', qw{
- HTTP_VERSION APR_EOL_STR APLOG_MARK APLOG_NOERRNO APR_SO_TIMEOUT
-+APR_HOOK_PROBES_ENABLED APR_HOOK_INT_DCL_UD
-+APLOG_MAX_LOGLEVEL
-+APR_BEGIN_DECLS APR_END_DECLS
- };
-
- sub get_constants {
-@@ -398,6 +406,8 @@ sub get_functions {
- my $c = $self->{c};
-
- my $fdecls = $c->get($key);
-+ my $inlines = $c->get('parsed_inlines');
-+ push @{$fdecls}, @{$inlines};
-
- my %seen;
- my $wanted = $self->wanted_functions;
-diff --git a/lib/ModPerl/CScan.pm b/lib/ModPerl/CScan.pm
-index 6789af3..a57acf3 100644
---- a/lib/ModPerl/CScan.pm
-+++ b/lib/ModPerl/CScan.pm
-@@ -136,6 +136,8 @@ my $recipes
- vdecl_hash => { filter => [ \&vdecl_hash, 'vdecls', 'mdecls' ], },
- parsed_fdecls => { filter => [ \&do_declarations, 'fdecls',
- 'typedef_hash', 'keywords'], },
-+ parsed_inlines => { filter => [ \&do_declarations, 'inlines',
-+ 'typedef_hash', 'keywords'], },
- keywords_rex => { filter => [ sub { my @k = keys %{ shift() };
- local $" = '|';
- my $r = "(?:@k)";
-@@ -943,7 +945,7 @@ sub new {
- my ($sym) = gensym;
- my $cmd = WIN32 ?
- "$Cpp->{cppstdin} $Defines $addincludes $Cpp->{cppflags} $filename |" :
-- "echo '\#include \"$filename\"' | $Cpp->{cppstdin} $Defines $addincludes $Cpp->{cppflags} $Cpp->{cppminus} |";
-+ "echo '\#include \"$filename\"' | $Cpp->{cppstdin} $Defines $addincludes $Cpp->{cppflags} $Cpp->{cppminus} | grep -v '^#' |";
- #my $cmd = "echo '\#include <$filename>' | $Cpp->{cppstdin} $Defines $addincludes $Cpp->{cppflags} $Cpp->{cppminus} |";
-
- (open($sym, $cmd) or die "Cannot open pipe from `$cmd': $!")
-diff --git a/lib/ModPerl/Code.pm b/lib/ModPerl/Code.pm
-index e43f77c..98b037d 100644
---- a/lib/ModPerl/Code.pm
-+++ b/lib/ModPerl/Code.pm
-@@ -889,7 +889,8 @@ EOF
-
- if ($name eq 'DECLINE_CMD' ||
- $name eq 'DIR_MAGIC_TYPE' ||
-- $name eq 'CRLF') {
-+ $name eq 'CRLF' ||
-+ $name eq 'CRLF_ASCII') {
- print $c_fh <<EOF;
- return newSVpv($alias{$name}, 0);
- EOF
-diff --git a/src/modules/perl/mod_perl.c b/src/modules/perl/mod_perl.c
-index d3245bf..b18e0fd 100644
---- a/src/modules/perl/mod_perl.c
-+++ b/src/modules/perl/mod_perl.c
-@@ -658,6 +658,10 @@ int modperl_hook_pre_config(apr_pool_t *p, apr_pool_t *plog,
- /* perl 5.8.1+ */
- modperl_hash_seed_init(p);
-
-+#if AP_SERVER_MAJORVERSION_NUMBER >= 2 && AP_SERVER_MINORVERSION_NUMBER >= 4
-+ ap_reserve_module_slots_directive("PerlModule");
-+#endif
-+
- return OK;
- }
-
-diff --git a/src/modules/perl/modperl_apache_compat.h b/src/modules/perl/modperl_apache_compat.h
-index 78a9cb3..072ae79 100644
---- a/src/modules/perl/modperl_apache_compat.h
-+++ b/src/modules/perl/modperl_apache_compat.h
-@@ -68,7 +68,6 @@ AP_DECLARE(const char *) ap_get_server_version(void);
- #define MP_HTTPD_OVERRIDE_OPTS_UNSET (-1)
- #define MP_HTTPD_OVERRIDE_OPTS_DEFAULT (OPT_UNSET | \
- OPT_ALL | \
-- OPT_INCNOEXEC | \
- OPT_SYM_OWNER | \
- OPT_MULTI)
-
-diff --git a/src/modules/perl/modperl_apache_includes.h b/src/modules/perl/modperl_apache_includes.h
-index c93decc..6f7bd8b 100644
---- a/src/modules/perl/modperl_apache_includes.h
-+++ b/src/modules/perl/modperl_apache_includes.h
-@@ -23,6 +23,10 @@
- #define CORE_PRIVATE
- #endif
-
-+#ifdef MP_IN_XS
-+#define AP_DEBUG_NO_ALLOC_POISON
-+#endif
-+
- #include "ap_mmn.h"
- #include "httpd.h"
- #include "http_config.h"
-@@ -34,9 +38,16 @@
- #include "http_core.h"
- #include "http_vhost.h"
- #include "ap_mpm.h"
-+#if !(AP_SERVER_MAJORVERSION_NUMBER >= 2 && AP_SERVER_MINORVERSION_NUMBER >= 4)
-+#include "apu_errno.h"
-+#endif
-
- #include "util_filter.h"
-
- #include "util_script.h"
-
-+#ifndef MP_IN_XS
-+APLOG_USE_MODULE(perl);
-+#endif
-+
- #endif /* MODPERL_APACHE_INCLUDES_H */
-diff --git a/src/modules/perl/modperl_apr_includes.h b/src/modules/perl/modperl_apr_includes.h
-index f5ae341..8e69776 100644
---- a/src/modules/perl/modperl_apr_includes.h
-+++ b/src/modules/perl/modperl_apr_includes.h
-@@ -35,5 +35,6 @@
- #include "apr_general.h"
- #include "apr_uuid.h"
- #include "apr_env.h"
-+#include "apu_errno.h"
-
- #endif /* MODPERL_APR_INCLUDES_H */
-diff --git a/src/modules/perl/modperl_config.c b/src/modules/perl/modperl_config.c
-index c4ef81f..e182f2d 100644
---- a/src/modules/perl/modperl_config.c
-+++ b/src/modules/perl/modperl_config.c
-@@ -479,7 +479,7 @@ typedef struct {
- PerlInterpreter *perl;
- } svav_param_t;
-
--static void *svav_getstr(void *buf, size_t bufsiz, void *param)
-+static apr_status_t svav_getstr(void *buf, size_t bufsiz, void *param)
- {
- svav_param_t *svav_param = (svav_param_t *)param;
- dTHXa(svav_param->perl);
-@@ -488,7 +488,7 @@ static void *svav_getstr(void *buf, size_t bufsiz, void *param)
- STRLEN n_a;
-
- if (svav_param->ix > AvFILL(av)) {
-- return NULL;
-+ return APR_EOF;
- }
-
- sv = AvARRAY(av)[svav_param->ix++];
-@@ -496,7 +496,7 @@ static void *svav_getstr(void *buf, size_t bufsiz, void *param)
-
- apr_cpystrn(buf, SvPVX(sv), bufsiz);
-
-- return buf;
-+ return APR_SUCCESS;
- }
-
- const char *modperl_config_insert(pTHX_ server_rec *s,
-diff --git a/src/modules/perl/modperl_interp.c b/src/modules/perl/modperl_interp.c
-index dfff32e..6ec9b56 100644
---- a/src/modules/perl/modperl_interp.c
-+++ b/src/modules/perl/modperl_interp.c
-@@ -496,11 +496,19 @@ modperl_interp_t *modperl_interp_select(request_rec *r, conn_rec *c,
-
- set_interp(p);
-
-+#if AP_SERVER_MAJORVERSION_NUMBER >= 2 && AP_SERVER_MINORVERSION_NUMBER >= 4
-+ MP_TRACE_i(MP_FUNC,
-+ "set interp 0x%lx in %s 0x%lx (%s request for %s)\n",
-+ (unsigned long)interp, desc, (unsigned long)p,
-+ (r ? (is_subrequest ? "sub" : "main") : "conn"),
-+ (r ? r->uri : c->client_ip));
-+#else
- MP_TRACE_i(MP_FUNC,
- "set interp 0x%lx in %s 0x%lx (%s request for %s)\n",
- (unsigned long)interp, desc, (unsigned long)p,
- (r ? (is_subrequest ? "sub" : "main") : "conn"),
- (r ? r->uri : c->remote_ip));
-+#endif
- }
-
- /* set context (THX) for this thread */
-diff --git a/src/modules/perl/modperl_module.c b/src/modules/perl/modperl_module.c
-index da148ca..aa1a851 100644
---- a/src/modules/perl/modperl_module.c
-+++ b/src/modules/perl/modperl_module.c
-@@ -832,7 +832,11 @@ const char *modperl_module_add(apr_pool_t *p, server_rec *s,
-
- modperl_module_insert(modp);
-
-+#if AP_SERVER_MAJORVERSION_NUMBER >= 2 && AP_SERVER_MINORVERSION_NUMBER >= 4
-+ ap_add_loaded_module(modp, p, modp->name);
-+#else
- ap_add_loaded_module(modp, p);
-+#endif
-
- apr_pool_cleanup_register(p, modp, modperl_module_remove,
- apr_pool_cleanup_null);
-diff --git a/t/apache/constants.t b/t/apache/constants.t
-index 97a3e6a..74e2fe5 100644
---- a/t/apache/constants.t
-+++ b/t/apache/constants.t
-@@ -6,7 +6,7 @@ use Apache::Test;
- use Apache::TestUtil;
-
- # -compile puts constants into the Apache2:: namespace
--use Apache2::Const -compile => qw(:http :common :mpmq :proxy
-+use Apache2::Const -compile => qw(:http :common :mpmq
- TAKE23 &OPT_EXECCGI
- DECLINE_CMD DIR_MAGIC_TYPE
- CRLF);
-diff --git a/t/conf/post_config_startup.pl b/t/conf/post_config_startup.pl
-index 391a0e2..5ab1bfc 100644
---- a/t/conf/post_config_startup.pl
-+++ b/t/conf/post_config_startup.pl
-@@ -31,7 +31,9 @@ test_apache_resource();
-
- test_apache_status();
-
--test_loglevel();
-+# FIXME: httpd-2.4 does not have loglevel setting in ServerRec
-+# This test has to be fixed.
-+#test_loglevel();
-
- test_perl_ithreads();
-
-diff --git a/t/response/TestAPI/add_config.pm b/t/response/TestAPI/add_config.pm
-index ff52cbc..c5f2d37 100644
---- a/t/response/TestAPI/add_config.pm
-+++ b/t/response/TestAPI/add_config.pm
-@@ -100,7 +100,6 @@ sub handler : method {
-
- my $expect = Apache2::Const::OPT_ALL |
- Apache2::Const::OPT_UNSET |
-- Apache2::Const::OPT_INCNOEXEC |
- Apache2::Const::OPT_MULTI |
- Apache2::Const::OPT_SYM_OWNER;
-
-diff --git a/t/response/TestAPI/aplog.pm b/t/response/TestAPI/aplog.pm
-index f2a4e19..1357311 100644
---- a/t/response/TestAPI/aplog.pm
-+++ b/t/response/TestAPI/aplog.pm
-@@ -93,7 +93,7 @@ sub handler {
- APR::Const::ENOTIME, "log_rerror test");
- # can't match against the error string, since a locale may kick in
- ok t_cmp $logdiff->diff,
-- qr/\[crit\] .*?: log_rerror test/,
-+ qr/\[\w*:crit\] \[pid[^]]+\] .*?: \[[^]]+\] log_rerror test/,
- '$r->log_rerror(LOG_MARK, LOG_CRIT, APR::Const::ENOTIME...)';
-
- # log_error
-@@ -101,13 +101,13 @@ sub handler {
- t_server_log_error_is_expected();
- $r->log_error('$r->log_error test');
- ok t_cmp $logdiff->diff,
-- qr/\[error\] \$r->log_error test/,
-+ qr/\[\w*:error\] \[pid[^]]+\] \$r->log_error test/,
- '$r->log_error(...)';
-
- t_server_log_error_is_expected();
- $s->log_error('$s->log_error test');
- ok t_cmp $logdiff->diff,
-- qr/\[error\] \$s->log_error test/,
-+ qr/\[\w*:error\] \[pid[^]]+\] \$s->log_error test/,
- '$s->log_error(...)';
- }
-
-@@ -116,13 +116,13 @@ sub handler {
- t_server_log_error_is_expected();
- $r->log_reason('$r->log_reason test');
- ok t_cmp $logdiff->diff,
-- qr/\[error\] access to.*failed.*reason: \$r->log_reason test/,
-+ qr/\[\w*:error\] \[pid[^]]+\] access to.*failed.*reason: \$r->log_reason test/,
- '$r->log_reason(msg)';
-
- t_server_log_error_is_expected();
- $r->log_reason('$r->log_reason filename test','filename');
- ok t_cmp $logdiff->diff,
-- qr/\[error\] access to filename failed.*\$r->log_reason filename test/,
-+ qr/\[\w*:error\] \[pid[^]]+\] access to filename failed.*\$r->log_reason filename test/,
- '$r->log_reason(msg, filename)';
- }
-
-@@ -177,7 +177,7 @@ sub handler {
- t_server_log_warn_is_expected();
- $s->warn('$s->warn test');
- ok t_cmp $logdiff->diff,
-- qr/\[warn\] \$s->warn test/,
-+ qr/\[\w*:warn\] \[pid[^]]+\] \$s->warn test/,
- '$s->warn()';
-
- {
-@@ -185,7 +185,7 @@ sub handler {
- # this uses global server to get $s internally
- Apache2::ServerRec::warn("Apache2::ServerRec::warn test");
- ok t_cmp $logdiff->diff,
-- qr/\[warn\] Apache2::ServerRec::warn test/,
-+ qr/\[\w*:warn\] \[pid[^]]+\] Apache2::ServerRec::warn test/,
- 'Apache2::ServerRec::warn() w/o Apache2::RequestUtil->request ';
-
- Apache2::RequestUtil->request($r);
-@@ -193,14 +193,14 @@ sub handler {
- # this uses the global $r to get $s internally
- Apache2::ServerRec::warn("Apache2::ServerRec::warn test");
- ok t_cmp $logdiff->diff,
-- qr/\[warn\] Apache2::ServerRec::warn test/,
-+ qr/\[\w*:warn\] \[pid[^]]+\] Apache2::ServerRec::warn test/,
- 'Apache2::ServerRec::warn() w/ Apache2::RequestUtil->request ';
- }
-
- t_server_log_warn_is_expected();
- warn "warn test";
- ok t_cmp $logdiff->diff,
-- qr/\[warn\] warn test/,
-+ qr/\[\w*:warn\] \[pid[^]]+\] warn test/,
- 'overriden via export warn()';
-
- Apache2::Const::OK;
-diff --git a/t/response/TestDirective/cmdparms.pm b/t/response/TestDirective/cmdparms.pm
-index 72e0d33..8dc0e73 100644
---- a/t/response/TestDirective/cmdparms.pm
-+++ b/t/response/TestDirective/cmdparms.pm
-@@ -134,6 +134,7 @@ TestCmdParms "Vhost"
-
- TestCmdParms "Location"
-
--<LimitExcept GET>
-- TestCmdParms "Limit"
--</LimitExcept>
-+#FIXME! httpd 2.4 does not allow LimitExcept here
-+# <LimitExcept GET>
-+# TestCmdParms "Limit"
-+# </LimitExcept>
-diff --git a/xs/APR/APR/Makefile.PL b/xs/APR/APR/Makefile.PL
-index 99ac3d4..79a0a0e 100644
---- a/xs/APR/APR/Makefile.PL
-+++ b/xs/APR/APR/Makefile.PL
-@@ -66,6 +66,8 @@ if (SOLARIS && $libs) {
- $libs =~ s{-R\S+}{}g;
- }
-
-+# FIXME: This should be done automatically somewhere in Apache2::Build
-+$libs .= qq{ -laprutil-1 };
- $args{LIBS} = [$libs] if $libs;
-
- my $srcdir = '../../../src/modules/perl';
-diff --git a/xs/APR/Socket/APR__Socket.h b/xs/APR/Socket/APR__Socket.h
-index dfc681c..d59fce6 100644
---- a/xs/APR/Socket/APR__Socket.h
-+++ b/xs/APR/Socket/APR__Socket.h
-@@ -118,10 +118,10 @@ apr_status_t mpxs_APR__Socket_poll(apr_socket_t *socket,
- }
-
- #ifndef WIN32
--static MP_INLINE int mpxs_APR__Socket_fileno(pTHX_ apr_socket_t *sock)
-+static MP_INLINE int mpxs_APR__Socket_fileno(pTHX_ apr_socket_t *socket)
- {
- apr_os_sock_t s;
-- apr_os_sock_get(&s, sock);
-+ apr_os_sock_get(&s, socket);
- return s;
- }
- #endif
-diff --git a/xs/Apache2/Log/Apache2__Log.h b/xs/Apache2/Log/Apache2__Log.h
-index 1866315..8281e8e 100644
---- a/xs/Apache2/Log/Apache2__Log.h
-+++ b/xs/Apache2/Log/Apache2__Log.h
-@@ -36,6 +36,7 @@ static void mpxs_ap_log_error(pTHX_ int level, SV *sv, SV *msg)
- int lmask = level & APLOG_LEVELMASK;
- server_rec *s;
- request_rec *r = NULL;
-+ int loglevel = 0;
-
- if (SvROK(sv) && sv_isa(sv, "Apache2::Log::Request")) {
- r = INT2PTR(request_rec *, SvObjIV(sv));
-@@ -48,13 +49,19 @@ static void mpxs_ap_log_error(pTHX_ int level, SV *sv, SV *msg)
- s = modperl_global_get_server_rec();
- }
-
-- if ((lmask == APLOG_DEBUG) && (s->loglevel >= APLOG_DEBUG)) {
-+#if AP_SERVER_MAJORVERSION_NUMBER >= 2 && AP_SERVER_MINORVERSION_NUMBER >= 4
-+ loglevel = s->log.level;
-+#else
-+ loglevel = s->loglevel;
-+#endif
-+
-+ if ((lmask == APLOG_DEBUG) && (loglevel >= APLOG_DEBUG)) {
- COP *cop = PL_curcop;
- file = CopFILE(cop); /* (caller)[1] */
- line = CopLINE(cop); /* (caller)[2] */
- }
-
-- if ((s->loglevel >= lmask) &&
-+ if ((loglevel >= lmask) &&
- SvROK(msg) && (SvTYPE(SvRV(msg)) == SVt_PVCV)) {
- dSP;
- ENTER;SAVETMPS;
-@@ -71,12 +78,21 @@ static void mpxs_ap_log_error(pTHX_ int level, SV *sv, SV *msg)
- str = SvPV(msg,n_a);
- }
-
-+#if AP_SERVER_MAJORVERSION_NUMBER >= 2 && AP_SERVER_MINORVERSION_NUMBER >= 4
-+ if (r) {
-+ ap_log_rerror(file, line, APLOG_MODULE_INDEX, level, 0, r, "%s", str);
-+ }
-+ else {
-+ ap_log_error(file, line, APLOG_MODULE_INDEX, level, 0, s, "%s", str);
-+ }
-+#else
- if (r) {
- ap_log_rerror(file, line, level, 0, r, "%s", str);
- }
- else {
- ap_log_error(file, line, level, 0, s, "%s", str);
- }
-+#endif
-
- if (svstr) {
- SvREFCNT_dec(svstr);
-@@ -257,12 +273,21 @@ MP_STATIC XS(MPXS_Apache2__Log_log_xerror)
-
- msgstr = SvPV(msgsv, n_a);
-
-+#if AP_SERVER_MAJORVERSION_NUMBER >= 2 && AP_SERVER_MINORVERSION_NUMBER >= 4
-+ if (r) {
-+ ap_log_rerror(file, line, APLOG_MODULE_INDEX, level, status, r, "%s", msgstr);
-+ }
-+ else {
-+ ap_log_error(file, line, APLOG_MODULE_INDEX, level, status, s, "%s", msgstr);
-+ }
-+#else
- if (r) {
- ap_log_rerror(file, line, level, status, r, "%s", msgstr);
- }
- else {
- ap_log_error(file, line, level, status, s, "%s", msgstr);
- }
-+#endif
-
- SvREFCNT_dec(msgsv);
-
-diff --git a/xs/Apache2/ServerUtil/Apache2__ServerUtil.h b/xs/Apache2/ServerUtil/Apache2__ServerUtil.h
-index e222c1b..f000502 100644
---- a/xs/Apache2/ServerUtil/Apache2__ServerUtil.h
-+++ b/xs/Apache2/ServerUtil/Apache2__ServerUtil.h
-@@ -162,8 +162,13 @@ SV *mpxs_Apache2__ServerRec_get_handlers(pTHX_ server_rec *s,
- #define mpxs_Apache2__ServerUtil_server(classname) modperl_global_get_server_rec()
-
- #if !defined(OS2) && !defined(WIN32) && !defined(BEOS) && !defined(NETWARE)
-+#if AP_SERVER_MAJORVERSION_NUMBER >= 2 && AP_SERVER_MINORVERSION_NUMBER >= 4
-+#define mpxs_Apache2__ServerUtil_user_id(classname) ap_unixd_config.user_id
-+#define mpxs_Apache2__ServerUtil_group_id(classname) ap_unixd_config.group_id
-+#else
- #define mpxs_Apache2__ServerUtil_user_id(classname) unixd_config.user_id
- #define mpxs_Apache2__ServerUtil_group_id(classname) unixd_config.group_id
-+#endif
- #else
- #define mpxs_Apache2__ServerUtil_user_id(classname) 0
- #define mpxs_Apache2__ServerUtil_group_id(classname) 0
-diff --git a/xs/ModPerl/Const/Const.xs b/xs/ModPerl/Const/Const.xs
-index 33a4c0c..15fa36d 100644
---- a/xs/ModPerl/Const/Const.xs
-+++ b/xs/ModPerl/Const/Const.xs
-@@ -17,6 +17,17 @@
- #include "mod_perl.h"
- #include "modperl_const.h"
-
-+/* To define extern perl_module to something so Const.so can be loaded later */
-+module AP_MODULE_DECLARE_DATA perl_module = {
-+ STANDARD20_MODULE_STUFF,
-+ NULL, /* dir config creater */
-+ NULL, /* dir merger --- default is to override */
-+ NULL, /* server config */
-+ NULL, /* merge server config */
-+ NULL, /* table of config file commands */
-+ NULL, /* register hooks */
-+};
-+
- MODULE = ModPerl::Const PACKAGE = ModPerl::Const
-
- PROTOTYPES: disable
-diff --git a/xs/maps/modperl_types.map b/xs/maps/modperl_types.map
-index 3b02f02..8c6d541 100644
---- a/xs/maps/modperl_types.map
-+++ b/xs/maps/modperl_types.map
-@@ -7,6 +7,8 @@ struct modperl_filter_t | Apache2::OutputFilter
- SV * | SV
- I32 | IV
- I32 * | IV
-+U16 | UV
-+U16 * | UV
- U32 | UV
- U32 * | UV
-
diff --git a/mod_perl.spec b/mod_perl.spec
index b4e23aa..e634c71 100644
--- a/mod_perl.spec
+++ b/mod_perl.spec
@@ -7,21 +7,23 @@
Name: mod_perl
Version: 2.0.7
-Release: 10%{?dist}
+Release: 12.20130221svn1448242%{?dist}
Summary: An embedded Perl interpreter for the Apache HTTP Server
Group: System Environment/Daemons
License: ASL 2.0
URL: http://perl.apache.org/
-Source0: http://perl.apache.org/dist/mod_perl-%{version}.tar.gz
+# The source for this package was pulled from upstream's vcs. Use the
+# following commands to generate the tarball:
+# svn export -r 1448242 https://svn.apache.org/repos/asf/perl/modperl/branches/httpd24 mod_perl-2.0.7-svn1448242
+# tar czvf mod_perl-2.0.7-svn1448242.tar.gz mod_perl-2.0.7-svn1448242
+Source0: mod_perl-2.0.7-svn1448242.tar.gz
+#Source0: http://perl.apache.org/dist/mod_perl-%{version}.tar.gz
Source1: perl.conf
Source2: perl.module.conf
-Patch0: mod_perl-2.0.4-multilib.patch
Patch1: mod_perl-2.0.4-inline.patch
Patch2: mod_perl-2.0.5-nolfs.patch
-Patch3: mod_perl-short-name.patch
-Patch4: mod_perl-httpd24.patch
-Patch5: mod_perl-httpd24-maps.patch
+#Patch3: mod_perl-short-name.patch
BuildRequires: perl-devel, perl(ExtUtils::Embed)
BuildRequires: httpd-devel >= 2.4.0, httpd, gdbm-devel
@@ -73,13 +75,10 @@ modules that use mod_perl.
%prep
-%setup -q -n %{name}-%{version}
-%patch0 -p1
+%setup -q -n %{name}-%{version}-svn1448242
%patch1 -p1
%patch2 -p1
-%patch3 -p1
-%patch4 -p1
-%patch5 -p1
+#%patch3 -p1
%build
@@ -102,17 +101,18 @@ CFLAGS="$RPM_OPT_FLAGS -fpic" %{__perl} Makefile.PL </dev/null \
MP_APXS=%{_httpd_apxs} \
MP_APR_CONFIG=%{_bindir}/apr-1-config
-make source_scan
-make xs_generate
-
-CFLAGS="$RPM_OPT_FLAGS -fpic" %{__perl} Makefile.PL </dev/null \
- PREFIX=$RPM_BUILD_ROOT/%{_prefix} \
- INSTALLDIRS=vendor \
- MP_APXS=%{_httpd_apxs} \
- MP_APR_CONFIG=%{_bindir}/apr-1-config
+# This is not needed now when we are using httpd24 branch, but I will keep
+# it here in case someone will have to regenerate *.xs files again.
+#make source_scan
+#make xs_generate
+#CFLAGS="$RPM_OPT_FLAGS -fpic" %{__perl} Makefile.PL </dev/null \
+# PREFIX=$RPM_BUILD_ROOT/%{_prefix} \
+# INSTALLDIRS=vendor \
+# MP_APXS=%{_httpd_apxs} \
+# MP_APR_CONFIG=%{_bindir}/apr-1-config
make -C src/modules/perl %{?_smp_mflags} OPTIMIZE="$RPM_OPT_FLAGS -fpic"
-make
+make %{?_smp_mflags}
%install
install -d -m 755 $RPM_BUILD_ROOT%{_httpd_moddir}
@@ -181,9 +181,20 @@ find "$RPM_BUILD_ROOT" -type f -name *.orig -exec rm -f {} \;
%files devel -f devel.files
%{_includedir}/httpd/*
%{perl_vendorarch}/Apache/Test*.pm
+%{perl_vendorarch}/MyTest
%{_mandir}/man3/Apache::Test*.3pm*
%changelog
+* Sat Mar 9 2013 Remi Collet <RPMS@FamilleCollet.com> - 2.0.7-12.20130221svn1448242
+- sync with rawhide, backport for remi repo
+
+* Thu Feb 21 2013 Jan Kaluza <jkaluza@redhat.com> - 2.0.7-12.20130221svn1448242
+- update to httpd24 svn branch which provides much more better compatibility
+ with httpd-2.4
+
+* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.7-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
* Wed Feb 13 2013 Remi Collet <RPMS@FamilleCollet.com> - 2.0.7-10
- sync with rawhide, backport for remi repo