forked from pool/apache2-mod_perl
		
	- update to 2.0.6 +Set the -apxs argument correctly when building from mod_perl. [Steve Hay] +Doc spelling fix [Nicholas Bamber] +Add Apache-Test 1.34 dependency. [Phred] OBS-URL: https://build.opensuse.org/request/show/123062 OBS-URL: https://build.opensuse.org/package/show/Apache:Modules/apache2-mod_perl?expand=0&rev=34
		
			
				
	
	
		
			137 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			137 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| 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',
 |