8
0

Accepting request 319123 from home:pgajdos:apache2

- updated to 2.0.9: see Changes for details
  * dropped patches:
    - lfs-perl-5.14.patch
    - apache2-mod_perl-2.0.4-tests.diff
    - apache24-mod_authz_host.patch

- turn off inlining for functions which need to be real symbols because they
  are called in a DSO

OBS-URL: https://build.opensuse.org/request/show/319123
OBS-URL: https://build.opensuse.org/package/show/Apache:Modules/apache2-mod_perl?expand=0&rev=55
This commit is contained in:
Vítězslav Čížek
2015-07-28 14:53:31 +00:00
committed by Git OBS Bridge
parent c57f989a60
commit 7014709e01
8 changed files with 84 additions and 405 deletions

View File

@@ -1,70 +0,0 @@
Index: t/hooks/authen_basic.t
===================================================================
--- t/hooks/authen_basic.t.orig 2007-11-12 06:34:00.000000000 +0100
+++ t/hooks/authen_basic.t 2010-03-05 12:38:56.000000000 +0100
@@ -4,7 +4,7 @@ use warnings FATAL => 'all';
use Apache::Test;
use Apache::TestRequest;
-plan tests => 4, need need_lwp, need_auth, 'HTML::HeadParser';
+plan tests => 2, need need_lwp, need_auth, 'HTML::HeadParser';
my $location = "/TestHooks__authen_basic";
@@ -17,13 +17,13 @@ sok {
$rc == 401;
};
-sok {
- GET_OK $location, username => 'dougm', password => 'foo';
-};
-
-sok {
- ! GET_OK $location, username => 'dougm', password => 'wrong';
-};
+#sok {
+# GET_OK $location, username => 'dougm', password => 'foo';
+#};
+
+#sok {
+# ! GET_OK $location, username => 'dougm', password => 'wrong';
+#};
Index: t/hooks/authz.t
===================================================================
--- t/hooks/authz.t.orig 2007-11-12 06:34:00.000000000 +0100
+++ t/hooks/authz.t 2010-03-05 12:38:56.000000000 +0100
@@ -4,7 +4,7 @@ use warnings FATAL => 'all';
use Apache::Test;
use Apache::TestRequest;
-plan tests => 4, need need_lwp, 'HTML::HeadParser';
+plan tests => 2, need need_lwp, 'HTML::HeadParser';
my $location = "/TestHooks__authz";
@@ -14,8 +14,8 @@ my $rc = GET_RC $location;
ok $rc == 401;
-ok GET_OK $location, username => 'dougm', password => 'foo';
+#ok GET_OK $location, username => 'dougm', password => 'foo';
-ok ! GET_OK $location, username => 'jobbob', password => 'whatever';
+#ok ! GET_OK $location, username => 'jobbob', password => 'whatever';
Index: Apache-Test/lib/Apache/TestConfig.pm
===================================================================
--- Apache-Test/lib/Apache/TestConfig.pm.orig 2007-12-31 08:50:45.000000000 +0100
+++ Apache-Test/lib/Apache/TestConfig.pm 2010-03-05 12:39:35.000000000 +0100
@@ -1769,6 +1769,7 @@ sub apxs {
# return an untainted PATH
sub untaint_path {
my $path = shift;
+ return $path unless defined $path;
($path) = ( $path =~ /(.*)/ );
# win32 uses ';' for a path separator, assume others use ':'
my $sep = WIN32 ? ';' : ':';

View File

@@ -1,3 +1,12 @@
-------------------------------------------------------------------
Tue Jul 28 14:08:01 UTC 2015 - pgajdos@suse.com
- updated to 2.0.9: see Changes for details
* dropped patches:
- lfs-perl-5.14.patch
- apache2-mod_perl-2.0.4-tests.diff
- apache24-mod_authz_host.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Jul 16 07:22:02 UTC 2015 - pgajdos@suse.com Thu Jul 16 07:22:02 UTC 2015 - pgajdos@suse.com
@@ -5,6 +14,12 @@ Thu Jul 16 07:22:02 UTC 2015 - pgajdos@suse.com
This will pull this module to the update (in released distribution) This will pull this module to the update (in released distribution)
when apache maintainer thinks it is good (due api/abi changes). when apache maintainer thinks it is good (due api/abi changes).
-------------------------------------------------------------------
Fri Jun 26 16:53:54 UTC 2015 - tjcw@physics.org
- turn off inlining for functions which need to be real symbols because they
are called in a DSO
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Nov 3 09:08:50 UTC 2014 - pgajdos@suse.com Mon Nov 3 09:08:50 UTC 2014 - pgajdos@suse.com

View File

@@ -16,19 +16,18 @@
# #
%define srcname mod_perl
Name: apache2-mod_perl Name: apache2-mod_perl
Version: 2.0.8 Version: 2.0.9
Release: 0 Release: 0
Summary: Embedded Perl for Apache Summary: Embedded Perl for Apache
License: Apache-2.0 License: Apache-2.0
Group: Productivity/Networking/Web/Servers Group: Productivity/Networking/Web/Servers
Url: http://perl.apache.org/ Url: http://perl.apache.org/
Source0: http://ftp.de.debian.org/debian/pool/main/liba/libapache2-mod-perl2/libapache2-mod-perl2_2.0.8+httpd24-r1449661.orig.tar.gz Source0: http://apache.miloslavbrada.cz/perl/%{srcname}-%{version}.tar.gz
Patch0: %{name}-2.0.4-tests.diff Patch0: inline.patch
# PATCH-NEEDS-REBASE Patch1: avoid-broken-provides.diff
Patch1: lfs-perl-5.14.patch
Patch2: avoid-broken-provides.diff
Patch3: apache24-mod_authz_host.patch
BuildRequires: apache-rpm-macros BuildRequires: apache-rpm-macros
BuildRequires: apache2-devel BuildRequires: apache2-devel
BuildRequires: db-devel BuildRequires: db-devel
@@ -54,9 +53,6 @@ Obsoletes: mod_perl_2
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
Conflicts: mod_perl Conflicts: mod_perl
Icon: mod_perl.xpm Icon: mod_perl.xpm
%if 0%{?sles_version} == 9
BuildRequires: openldap2-devel
%endif
%description %description
The Apache/Perl integration project brings together the full power of The Apache/Perl integration project brings together the full power of
@@ -104,127 +100,39 @@ This package contains the include files useful for developing new
software depending on apache2-mod_perl. software depending on apache2-mod_perl.
%prep %prep
#%setup -q -n modperl-2.0 -a 1 %setup -q -n %{srcname}-%{version}
%setup -q -n httpd24 %patch0
%patch2 -p1 %patch1 -p1
%patch3 -p1
#%patch1 -p1
find -name ".svn" -type d | xargs rm -rfv
%build %build
perl Makefile.PL INSTALLDIRS=vendor MP_APXS=`which %{apache_apxs}` MP_APR_CONFIG=%{_bindir}/apr-1-config MP_CCOPTS="%{apache_cflags}" perl Makefile.PL INSTALLDIRS=vendor MP_APXS=%{apache_apxs} MP_APR_CONFIG=%{_bindir}/apr-1-config MP_CCOPTS="%{apache_cflags}"
ln -s Apache-mod_perl_guide-1.29/bin bin
make %{?_smp_mflags} make %{?_smp_mflags}
# XXX mod_include/SSI does not include files when they are not named .shtml
mv t/htdocs/includes-registry/test.pl t/htdocs/includes-registry/test.shtml
mv t/htdocs/includes-registry/cgipm.pl t/htdocs/includes-registry/cgipm.shtml
sed 's/\.pl/.shtml/' t/htdocs/includes/test.shtml > tmpfile && mv tmpfile t/htdocs/includes/test.shtml
%ifnarch %{arm}
# #
# Run tests # Run tests
# #
# Don't use sendfile because most systems on which this package will be built don't run a %ifnarch %{arm}
# kernel that has it implemented, actually mkdir t/run
# (Files smaller than 256 bytes will be delivered via conventional read/write, so most of the tests would pass nevertheless.) # workaround for 32-bit where /usr/lib64/apache2-prefork is hardcoded?
echo -e '\n\nEnableSendfile off' >> t/conf/extra.conf.in
#
# fix for bad_scripts.t in 1.99_12
# [Tue Mar 02 17:28:26 2004] [error] file permissions deny server execution/usr/src/packages/BUILD/modperl-2.0/ModPerl-Registry/t/cgi-bin/r_inherited.pl
if test -e ModPerl-Registry/t/cgi-bin/r_inherited.pl; then chmod +x ModPerl-Registry/t/cgi-bin/r_inherited.pl; fi
#
# 1.99_12_20040302 fix for t/hooks/cleanup.t and t/hooks/cleanup2.t
# [Tue Mar 02 18:38:41 2004] [error] [client 127.0.0.1] can't open /usr/src/packages/BUILD/modperl-2.0/t/htdocs/hooks/cleanup2: Permission denied at /usr/src/packages/BUILD/modperl-2.0/Apache-Test/lib/Apache/TestUtil.pm line 82.
#
# enable more apache modules
# we can't simply use a2enmod, since we are not root.
cat >> t/conf/extra.conf.in <<-EOF cat >> t/conf/extra.conf.in <<-EOF
#LoadModule access_compat_module %{_prefix}/%_lib/apache2-prefork/mod_access_compat.so
LoadModule authn_core_module %{_libdir}/apache2-prefork/mod_authn_core.so LoadModule authn_core_module %{_libdir}/apache2-prefork/mod_authn_core.so
LoadModule authz_core_module %{_libdir}/apache2-prefork/mod_authz_core.so LoadModule authz_core_module %{_libdir}/apache2-prefork/mod_authz_core.so
#LoadModule unixd_module %{_prefix}/%_lib/apache2-prefork/mod_unixd.so LoadModule authz_user_module %{_libdir}/apache2-prefork/mod_authz_user.so
LoadModule deflate_module %{_libdir}/apache2-prefork/mod_deflate.so LoadModule deflate_module %{_libdir}/apache2-prefork/mod_deflate.so
LoadModule proxy_module %{_libdir}/apache2-prefork/mod_proxy.so LoadModule proxy_module %{_libdir}/apache2-prefork/mod_proxy.so
LoadModule proxy_http_module %{_libdir}/apache2-prefork/mod_proxy_http.so LoadModule proxy_http_module %{_libdir}/apache2-prefork/mod_proxy_http.so
EOF EOF
mkdir -p t/htdocs/hooks
chmod 2770 t/htdocs/hooks
#
# run test suite:
#
#make TEST_VERBOSE=1 APACHE_TEST_PORT=select APACHE_TEST_STARTUP_TIMEOUT=360 test || {
# ps aufx | grep "/usr/sbin/httpd2-prefork -d /usr/src/packages/BUILD/modperl-2.0" \
# | grep -v grep | awk '{print $2}' | xargs -r kill
# exit 1
#}
mkdir t/run
t/TEST -start-httpd -port select -startup_timeout 720 t/TEST -start-httpd -port select -startup_timeout 720
t/TEST -run-tests || true t/TEST -run-tests || true
#t/TEST -run-tests || {
# t/TEST -stop-httpd
# exit 1
#}
t/TEST -stop-httpd t/TEST -stop-httpd
# in case of failures, see http://perl.apache.org/docs/2.0/user/help/help.html#_C_make_test___Failures
# then, debug like this:
# t/TEST -start-httpd
# tail -F t/logs/*&
# t/TEST -run-tests -verbose $failed_test
# t/TEST -stop-httpd
%endif %endif
exit 0
%install %install
%perl_make_install %perl_make_install
### since 11.4 perl_process_packlist # install /srv/www/perl-lib
### removes .packlist, perllocal.pod files
%if 0%{?suse_version} > 1130
%perl_process_packlist
%else
# do not perl_process_packlist
# remove .packlist file
find %{buildroot}%{perl_vendorarch}/auto -name .packlist -print0 | xargs -0 -r rm ;
# remove perllocal.pod file
rm -f %{buildroot}%{perl_archlib}/perllocal.pod
%endif
#mkdir -p $RPM_BUILD_ROOT/%{apache_libexecdir}
#cp -p src/modules/perl/mod_perl.so $RPM_BUILD_ROOT/%{apache_libexecdir}
install -D src/modules/perl/mod_perl.so \
%{buildroot}/%{apache_libexecdir}/mod_perl.so
#mkdir -p $RPM_BUILD_ROOT/%{apache_includedir}/modules/perl
install -d %{buildroot}/%{apache_includedir}/modules/perl
cp src/modules/perl/*.h %{buildroot}/%{apache_includedir}/modules/perl/
#mkdir -p $RPM_BUILD_ROOT/%{apache_sysconfdir}/conf.d
install -d %{buildroot}/%{apache_sysconfdir}/conf.d
cat > %{buildroot}/%{apache_sysconfdir}/mod_perl-startup.pl <<-EOF
# Taken from http://perl.apache.org/docs/2.0/user/handlers/server.html#Startup_File
if ( ! \$ENV{MOD_PERL}) { die "GATEWAY_INTERFACE not Perl!"; }
use lib qw(/srv/www/perl-lib);
# enable if the mod_perl 1.0 compatibility is needed
# use Apache2::compat ();
# preload all mp2 modules
# use ModPerl::MethodLookup;
# ModPerl::MethodLookup::preload_all_modules();
use ModPerl::Util (); #for CORE::GLOBAL::exit
use Apache2::RequestRec ();
use Apache2::RequestIO ();
use Apache2::RequestUtil ();
use Apache2::ServerRec ();
use Apache2::ServerUtil ();
use Apache2::Connection ();
use Apache2::Log ();
use APR::Table ();
use ModPerl::Registry ();
use Apache2::Const -compile => ':common';
use APR::Const -compile => ':common';
1;
EOF
#mkdir -p $RPM_BUILD_ROOT/%{apache_serverroot}/perl-lib
install -d %{buildroot}/%{apache_serverroot}/perl-lib install -d %{buildroot}/%{apache_serverroot}/perl-lib
# install /etc/apache2/conf.d/mod_perl.conf
install -d %{buildroot}/%{apache_sysconfdir}/conf.d
cat > %{buildroot}/%{apache_sysconfdir}/conf.d/mod_perl.conf <<EOF cat > %{buildroot}/%{apache_sysconfdir}/conf.d/mod_perl.conf <<EOF
<Directory "%{apache_serverroot}/perl-lib"> <Directory "%{apache_serverroot}/perl-lib">
AllowOverride None AllowOverride None
@@ -258,16 +166,50 @@ cat > %{buildroot}/%{apache_sysconfdir}/conf.d/mod_perl.conf <<EOF
# The /cgi-bin/ ScriptAlias is already set up in httpd.conf # The /cgi-bin/ ScriptAlias is already set up in httpd.conf
</IfModule> </IfModule>
EOF EOF
# install /etc/apache2/mod_perl-startup.pl
cat > %{buildroot}/%{apache_sysconfdir}/mod_perl-startup.pl <<-EOF
# Taken from http://perl.apache.org/docs/2.0/user/handlers/server.html#Startup_File
if ( ! \$ENV{MOD_PERL}) { die "GATEWAY_INTERFACE not Perl!"; }
use lib qw(/srv/www/perl-lib);
# enable if the mod_perl 1.0 compatibility is needed
# use Apache2::compat ();
# preload all mp2 modules
# use ModPerl::MethodLookup;
# ModPerl::MethodLookup::preload_all_modules();
use ModPerl::Util (); #for CORE::GLOBAL::exit
use Apache2::RequestRec ();
use Apache2::RequestIO ();
use Apache2::RequestUtil ();
use Apache2::ServerRec ();
use Apache2::ServerUtil ();
use Apache2::Connection ();
use Apache2::Log ();
use APR::Table ();
use ModPerl::Registry ();
use Apache2::Const -compile => ':common';
use APR::Const -compile => ':common';
1;
EOF
# install documentation files alongside perl modules, where applicable # install documentation files alongside perl modules, where applicable
cp -av docs/api/*.pod %{buildroot}/%{perl_vendorarch}/ cp -av docs/api/*.pod %{buildroot}/%{perl_vendorarch}/
cp -av docs/api/APR/*.pod %{buildroot}/%{perl_vendorarch}/APR/ cp -av docs/api/APR/*.pod %{buildroot}/%{perl_vendorarch}/APR/
cp -av docs/api/Apache2/*.pod %{buildroot}/%{perl_vendorarch}/Apache2/ cp -av docs/api/Apache2/*.pod %{buildroot}/%{perl_vendorarch}/Apache2/
cp -av docs/api/ModPerl/*.pod %{buildroot}/%{perl_vendorarch}/ModPerl/ cp -av docs/api/ModPerl/*.pod %{buildroot}/%{perl_vendorarch}/ModPerl/
find %{buildroot} -type f -name '*.orig' -delete -print ### since 11.4 perl_process_packlist
### removes .packlist, perllocal.pod files
%if 0%{?suse_version} > 1130
%perl_process_packlist
%else
# do not perl_process_packlist
# remove .packlist file
find %{buildroot}%{perl_vendorarch}/auto -name .packlist -print0 | xargs -0 -r rm ;
# remove perllocal.pod file
rm -f %{buildroot}%{perl_archlib}/perllocal.pod
%endif
%files %files
%defattr(-,root,root) %defattr(-,root,root)
%doc Changes INSTALL LICENSE README RELEASE STATUS %doc Changes LICENSE README RELEASE STATUS
%doc docs %doc docs
%dir %{apache_libexecdir} %dir %{apache_libexecdir}
%{apache_libexecdir}/mod_perl.so %{apache_libexecdir}/mod_perl.so
@@ -281,8 +223,6 @@ find %{buildroot} -type f -name '*.orig' -delete -print
%{perl_vendorarch}/APR.pm %{perl_vendorarch}/APR.pm
%{perl_vendorarch}/Bundle %{perl_vendorarch}/Bundle
%{perl_vendorarch}/ModPerl %{perl_vendorarch}/ModPerl
#%{perl_vendorarch}/MyTest
#%dir %{perl_sitearch}/auto
%{perl_vendorarch}/auto/* %{perl_vendorarch}/auto/*
%{perl_vendorarch}/mod_perl2.pm %{perl_vendorarch}/mod_perl2.pm
%{perl_vendorarch}/*.pod %{perl_vendorarch}/*.pod
@@ -291,6 +231,5 @@ find %{buildroot} -type f -name '*.orig' -delete -print
%files devel %files devel
%defattr(-,root,root) %defattr(-,root,root)
%{apache_includedir}/* %{apache_includedir}/*
%{perl_vendorarch}/MyTest/
%changelog %changelog

View File

@@ -1,80 +0,0 @@
diff --git a/t/filter/TestFilter/both_str_req_proxy.pm b/t/filter/TestFilter/both_str_req_proxy.pm
index 9e2ba81..4d0b72b 100644
--- a/t/filter/TestFilter/both_str_req_proxy.pm
+++ b/t/filter/TestFilter/both_str_req_proxy.pm
@@ -62,9 +62,7 @@ __DATA__
<IfModule mod_proxy.c>
<Proxy http://@servername@:@port@/*>
<IfModule @ACCESS_MODULE@>
- Order Deny,Allow
- Deny from all
- Allow from @servername@
+ Require host @servername@
</IfModule>
</Proxy>
diff --git a/t/protocol/TestProtocol/pseudo_http.pm b/t/protocol/TestProtocol/pseudo_http.pm
index bb49ec8..1b8e93b 100644
--- a/t/protocol/TestProtocol/pseudo_http.pm
+++ b/t/protocol/TestProtocol/pseudo_http.pm
@@ -154,9 +154,9 @@ __END__
<Location TestProtocol::pseudo_http>
+ <RequireAny>
<IfModule @ACCESS_MODULE@>
- Order Deny,Allow
- Allow from @servername@
+ Require host @servername@
</IfModule>
<IfModule @AUTH_MODULE@>
@@ -168,7 +168,7 @@ __END__
AuthName TestProtocol::pseudo_http
AuthType Basic
Require user stas
- Satisfy any
+ </RequireAny>
</Location>
diff --git a/t/response/TestAPI/access2.pm b/t/response/TestAPI/access2.pm
index 718800e..836d54a 100644
--- a/t/response/TestAPI/access2.pm
+++ b/t/response/TestAPI/access2.pm
@@ -101,9 +101,10 @@ PerlAddAuthzProvider my-group TestAPI::access2->authz_handler
PerlResponseHandler Apache::TestHandler::ok1
SetHandler modperl
+ <RequireAll>
<IfModule @ACCESS_MODULE@>
# needed to test $r->satisfies
- Allow from All
+ Require all granted
</IfModule>
AuthType Basic
AuthName "Access"
@@ -112,7 +113,7 @@ PerlAddAuthzProvider my-group TestAPI::access2->authz_handler
<Limit POST>
Require valid-user
</Limit>
- Satisfy All
+ </RequireAll>
<IfModule @AUTH_MODULE@>
# htpasswd -mbc auth-users goo foo
# htpasswd -mb auth-users bar mar
diff --git a/t/response/TestModules/proxy.pm b/t/response/TestModules/proxy.pm
index ab59026..91e251e 100644
--- a/t/response/TestModules/proxy.pm
+++ b/t/response/TestModules/proxy.pm
@@ -47,9 +47,7 @@ __END__
<IfModule mod_proxy.c>
<Proxy http://@servername@:@port@/*>
<IfModule @ACCESS_MODULE@>
- Order Deny,Allow
- Deny from all
- Allow from @servername@
+ Require host @servername@
</IfModule>
</Proxy>

11
inline.patch Normal file
View File

@@ -0,0 +1,11 @@
--- src/modules/perl/modperl_common_util.h.orig 2015-06-26 17:41:33.538000834 +0100
+++ src/modules/perl/modperl_common_util.h 2015-06-26 17:42:14.524052878 +0100
@@ -22,7 +22,7 @@
#ifdef MP_DEBUG
#define MP_INLINE
#else
-#define MP_INLINE APR_INLINE
+#define MP_INLINE
#endif
#ifdef CYGWIN

View File

@@ -1,136 +0,0 @@
Index: mod_perl-2.0.6/lib/Apache2/Build.pm
===================================================================
--- mod_perl-2.0.6.orig/lib/Apache2/Build.pm 2012-05-31 13:03:22.969922364 +0200
+++ mod_perl-2.0.6/lib/Apache2/Build.pm 2012-05-31 13:03:28.940642765 +0200
@@ -643,7 +643,7 @@ sub cmp_tuples {
sub perl_ccopts {
my $self = shift;
- my $cflags = $self->strip_lfs(" $Config{ccflags} ");
+ my $cflags = " $Config{ccflags} ";
my $fixup = \&{"ccopts_$^O"};
if (defined &$fixup) {
@@ -2137,94 +2137,6 @@ sub inc {
"@includes";
}
-### Picking the right LFS support flags for mod_perl, by Joe Orton ###
-#
-# on Unix systems where by default off_t is a "long", a 32-bit integer,
-# there are two different ways to get "large file" support, i.e. the
-# ability to manipulate files bigger than 2Gb:
-#
-# 1) you compile using -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64. This
-# makes sys/types.h expose off_t as a "long long", a 64-bit integer, and
-# changes the size of a few other types too. The C library headers
-# automatically arrange to expose a correct implementation of functions
-# like lseek() which take off_t parameters.
-#
-# 2) you compile using -D_LARGEFILE64_SOURCE, and use what is called the
-# "transitional" interface. This means that the system headers expose a
-# new type, "off64_t", which is a long long, but the size of off_t is not
-# changed. A bunch of new functions like lseek64() are exposed by the C
-# library headers, which take off64_t parameters in place of off_t.
-#
-# Perl built with -Duselargefiles uses approach (1).
-#
-# APR HEAD uses (2) by default. APR 0.9 does not by default use either
-# approach, but random users can take a httpd-2.0.49 tarball, and do:
-#
-# export CPPFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
-# ./configure
-#
-# to build a copy of apr/httpd which uses approach (1), though this
-# isn't really a supported configuration.
-#
-# The problem that mod_perl has to work around is when you take a
-# package built with approach (1), i.e. Perl, and any package which was
-# *not* built with (1), i.e. APR, and want to interface between
-# them. [1]
-#
-# So what you want to know is whether APR was built using approach (1)
-# or not. APR_HAS_LARGE_FILES in HEAD just tells you whether APR was
-# built using approach (2) or not, which isn't useful in solving this
-# problem.
-#
-# [1]: In some cases, it may be OK to interface between packages which
-# use (1) and packages which use (2). APR HEAD is currently not such a
-# case, since the size of apr_ino_t is still changing when
-# _FILE_OFFSET_BITS is defined.
-#
-# If you want to see how this matters, get some httpd function to do at
-# the very beginning of main():
-#
-# printf("sizeof(request_rec) = %lu, sizeof(apr_finfo_t) = %ul",
-# sizeof(request_rec), sizeof(apr_finfo_t));
-#
-# and then put the same printf in mod_perl somewhere, and see the
-# differences. This is why it is a really terribly silly idea to ever
-# use approach (1) in anything other than an entirely self-contained
-# application.
-#
-# there is no conflict if both libraries either have or don't have
-# large files support enabled
-sub has_large_files_conflict {
- my $self = shift;
-
- my $apxs_flags = join $self->apxs_extra_cflags, $self->apxs_extra_cppflags;
- my $apr_lfs64 = $apxs_flags =~ /-D_FILE_OFFSET_BITS=64/;
- my $perl_lfs64 = $Config{ccflags} =~ /-D_FILE_OFFSET_BITS=64/;
-
- # XXX: we don't really deal with the case where APR was built with
- # -D_FILE_OFFSET_BITS=64 but perl wasn't, since currently we strip
- # only perl's ccflags, not apr's flags. the reason we don't deal
- # with it is that we didn't have such a case yet, but may need to
- # deal with it later
-
- return $perl_lfs64 ^ $apr_lfs64;
-}
-
-# if perl is built with uselargefiles, but apr not, the build won't
-# work together as it uses two binary incompatible libraries, so
-# reduce the functionality to the greatest common denominator (C code
-# will have to make sure to prevent any operations that may rely on
-# effects created by uselargefiles, e.g. Off_t=8 instead of Off_t=4)
-sub strip_lfs {
- my ($self, $cflags) = @_;
- return $cflags unless $self->has_large_files_conflict();
-
- my $lf = $Config{ccflags_uselargefiles}
- || '-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64';
- $cflags =~ s/$lf//;
- $cflags;
-}
-
sub define {
my $self = shift;
Index: mod_perl-2.0.6/xs/APR/PerlIO/Makefile.PL
===================================================================
--- mod_perl-2.0.6.orig/xs/APR/PerlIO/Makefile.PL 2012-05-31 13:03:22.969922364 +0200
+++ mod_perl-2.0.6/xs/APR/PerlIO/Makefile.PL 2012-05-31 13:03:28.940642765 +0200
@@ -8,23 +8,6 @@ my $build = Apache2::Build->build_config
my $ccopts = $build->ccopts;
-# when uselargefiles is on, -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-# are needed to get the right 'Off_t', without which perlio compiled
-# with Off_t as 'long long int', doesn't quite work with apr_perlio.c
-# compiled with Off_t as 'long int'
-#
-# On the other handl if apr is built without large files support, we
-# have binary compatibility problems, if we try to build mod_perl with
-# -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-#
-# XXX: it seems that enabling these flags only for apr_perlio/PerlIO
-# seems to do the trick
-if ($build->has_large_files_conflict) {
- $ccopts .= $Config{uselargefiles}
- ? ' ' . $Config{ccflags_uselargefiles}
- : '';
-}
-
ModPerl::BuildMM::WriteMakefile(
NAME => 'APR::PerlIO',
VERSION_FROM => 'PerlIO.pm',

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:47c8f079fac7b2fa0f15096607a8ad0eff293d01527b65c1e8cbe4ed5e7b69ad
size 3803732

3
mod_perl-2.0.9.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0260f26ab771c1c95fadc67544b3400e420bb30b8a77565d2d02ad05498ef52b
size 3846584