diff options
-rw-r--r-- | mod_perl-2.0.4-multilib.patch | 32 | ||||
-rw-r--r-- | mod_perl-httpd24-maps.patch | 82 | ||||
-rw-r--r-- | mod_perl-httpd24.patch | 533 | ||||
-rw-r--r-- | mod_perl.spec | 51 |
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 |