Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package apache2-mod_perl for openSUSE:Factory checked in at 2023-11-14 21:42:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/apache2-mod_perl (Old) and /work/SRC/openSUSE:Factory/.apache2-mod_perl.new.17445 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "apache2-mod_perl" Tue Nov 14 21:42:18 2023 rev:49 rq:1125705 version:2.0.13 Changes: -------- --- /work/SRC/openSUSE:Factory/apache2-mod_perl/apache2-mod_perl.changes 2023-08-17 19:44:01.866843872 +0200 +++ /work/SRC/openSUSE:Factory/.apache2-mod_perl.new.17445/apache2-mod_perl.changes 2023-11-14 21:42:22.779169781 +0100 @@ -1,0 +2,11 @@ +Mon Nov 13 16:41:31 UTC 2023 - David Anes <david.a...@suse.com> + +- Update to 2.0.13: + * Use get_server_banner() instead of deprecated get_server_version() in + Apache2::Status. + * Avoid generating APR precompiled headers. + * Fix build for perl >= 5.37.1. + +- Removed apache2-mod_perl-perl-5.38.patch (fix already upstream) + +------------------------------------------------------------------- Old: ---- apache2-mod_perl-perl-5.38.patch mod_perl-2.0.12.tar.gz mod_perl-2.0.12.tar.gz.asc New: ---- mod_perl-2.0.13.tar.gz mod_perl-2.0.13.tar.gz.asc BETA DEBUG BEGIN: Old: - Removed apache2-mod_perl-perl-5.38.patch (fix already upstream) BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ apache2-mod_perl.spec ++++++ --- /var/tmp/diff_new_pack.iL4DOn/_old 2023-11-14 21:42:23.599200136 +0100 +++ /var/tmp/diff_new_pack.iL4DOn/_new 2023-11-14 21:42:23.599200136 +0100 @@ -18,7 +18,7 @@ %define srcname mod_perl Name: apache2-mod_perl -Version: 2.0.12 +Version: 2.0.13 Release: 0 Summary: Embedded Perl for Apache License: Apache-2.0 @@ -30,7 +30,6 @@ Patch1: avoid-broken-provides.diff # bsc#1091625, workaround, according to mls it should be solved in perl Patch2: apache2-mod_perl-prctl-short-name.patch -Patch3: apache2-mod_perl-perl-5.38.patch BuildRequires: apache-rpm-macros BuildRequires: apache2-devel BuildRequires: db-devel ++++++ mod_perl-2.0.12.tar.gz -> mod_perl-2.0.13.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/Apache-Reload/Changes new/mod_perl-2.0.13/Apache-Reload/Changes --- old/mod_perl-2.0.12/Apache-Reload/Changes 2022-01-30 14:02:19.000000000 +0100 +++ new/mod_perl-2.0.13/Apache-Reload/Changes 2023-10-21 11:47:11.000000000 +0200 @@ -6,6 +6,18 @@ =over 1 +=item 0.14 August 06, 2023 + +Fix unnecessary FAIL reports on CPAN Testers by checking for mod_perl or +mod_perl2. +[Andreas Koenig <a...@cpan.org>, CPAN RT#34316; Steve Hay] + +Fix spelling error. +[<x.guim...@free.fr>, CPAN RT#127004] + +Fix Makefile.PL when Apache::Test is not present. +[Nigel Gregoire, CPAN RT#113778] + =item 0.13 May 09, 2015 Fix reload.t. Reported in CPAN RT#96656. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/Apache-Reload/Makefile.PL new/mod_perl-2.0.13/Apache-Reload/Makefile.PL --- old/mod_perl-2.0.12/Apache-Reload/Makefile.PL 2022-01-30 14:02:19.000000000 +0100 +++ new/mod_perl-2.0.13/Apache-Reload/Makefile.PL 2023-10-21 11:47:11.000000000 +0200 @@ -2,6 +2,7 @@ use lib qw(lib); use Config; +use Symbol qw(gensym); my %prereqs = (); my %mp2 = ( mod_perl2 => 1.99022 ); @@ -13,7 +14,7 @@ # also set MP_APXS if ($ENV{MOD_PERL_2_BUILD}) { push @ARGV, "-apxs", $ENV{MP_APXS}; - my $mp_gen = satisfy_mp_generation(2); + $mp_gen = satisfy_mp_generation(2); } else { $mp_gen = satisfy_mp_generation(); @@ -24,7 +25,7 @@ my $HAS_APACHE_TEST = check_for_apache_test(); my $VERSION; -set_version(); +set_apache_reload_version(); my %common_opts = ( VERSION => $VERSION, @@ -84,7 +85,7 @@ return 1; } -sub set_version { +sub set_apache_reload_version { require Apache::Reload; $VERSION = $Apache::Reload::VERSION; @@ -121,13 +122,14 @@ unless ($wanted == 1 || $wanted == 2) { die "don't know anything about mod_perl generation: $wanted\n" . - "currently supporting only generations 1 and 2"; + "currently supporting only generations 1 and 2.\n" . + "Please specify MOD_PERL=1 or MOD_PERL=2 on the commandline\n"; } my $selected = 0; if ($wanted == 1) { - require_mod_perl(); + require_mod_perl(1); if ($mod_perl::VERSION >= 1.99) { # so we don't pick 2.0 version if 1.0 is wanted die "You don't seem to have mod_perl 1.0 installed"; @@ -136,7 +138,7 @@ } elsif ($wanted == 2) { #warn "Looking for mod_perl 2.0"; - require_mod_perl(); + require_mod_perl(2); if ($mod_perl::VERSION < 2.0) { die "You don't seem to have mod_perl 2.0 installed"; } @@ -152,8 +154,25 @@ } sub require_mod_perl { - eval { require mod_perl }; - eval { require mod_perl2 } if ($@); + my($rversion) = @_; + if (!$rversion || $rversion==1){ + eval { require mod_perl }; + if ($rversion == 1){ + if ($@){ + warn "Note: Did not find mod_perl installed\n"; + } + return; # do not die, let PREREQ_PM handle it + } + } + if ($@ || !$rversion || $rversion==2){ + eval { require mod_perl2 }; + if ($rversion == 2){ + if ($@){ + warn "Note: Did not find mod_perl2 installed\n"; + } + return; # do not die, let PREREQ_PM handle it + } + } die "Can't find mod_perl installed\nThe error was: $@" if $@; } @@ -210,7 +229,7 @@ unshift @INC, $atlib if -d $atlib; } - eval { require mod_perl2 } if ($@); + eval { require mod_perl2 }; unless ($@) { $wanted = 2; } @@ -228,12 +247,13 @@ sub postamble { my $self = shift; + my $q = ($^O =~ /MSWin32/i ? '"' : "'"); + my $string = $self->SUPER::postamble; - $string .= <<'EOF'; + $string .= <<"EOF"; tag : - svn copy https://svn.apache.org/repos/asf/perl/Apache-Reload/trunk https://svn.apache.org/repos/asf/perl/Apache-Reload/tags/$(VERSION_SYM) - @echo update lib/Apache/Reload.pm VERSION now + svn copy -m $q\$(VERSION_SYM) tag$q https://svn.apache.org/repos/asf/perl/Apache-Reload/trunk https://svn.apache.org/repos/asf/perl/Apache-Reload/tags/\$(VERSION_SYM) EOF return $string; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/Apache-Reload/RELEASE new/mod_perl-2.0.13/Apache-Reload/RELEASE --- old/mod_perl-2.0.12/Apache-Reload/RELEASE 2022-01-30 14:02:19.000000000 +0100 +++ new/mod_perl-2.0.13/Apache-Reload/RELEASE 2023-10-21 11:47:11.000000000 +0200 @@ -1,22 +1,21 @@ Instructions for Apache-Reload Release Manager -0. Ask the PMC to verify that you have the appropriate CPAN permissions - on dev@perl. +0. Ask the PMC to verify that you have the appropriate CPAN permissions + on dev@perl. - If this is your first release, ask someone with APML karma on PAUSE - to verify you have the appropriate permissions. Likely someone on - the PMC can do this. - - a. login into https://pause.perl.org - b. menu click: Select Mailinglist/Action - c. choose APML and Change Permissions and click go - d. click 3.1 Make somebody else co-maintainer - e. choose the modules to give the perms to - type the username of the new co-maintainer - f. if you happen to know that packages were added this release, - make sure you give the correct permissions to them. - - MAINTAINER_BUILDING_RELEASE=1 perl Makefile.PL + If this is your first release, ask someone with APML karma on PAUSE + to verify you have the appropriate permissions. Likely someone on + the PMC can do this. + + a. login into https://pause.perl.org + b. menu click: Select Mailinglist/Action + c. choose APML and Change Permissions and click go + d. click 3.1 Make somebody else co-maintainer + e. choose the modules to give the perms to + type the username of the new co-maintainer + f. if you happen to know that packages were added this release, + make sure you give the correct permissions to them. + % MAINTAINER_BUILDING_RELEASE=1 perl Makefile.PL 1. 'make disttest' - to make sure nothing is missing from the manifest. Now 'make dist', and test this generated package (not svn) @@ -26,26 +25,28 @@ a. edit ./Changes: - change -dev to -rc\d+ starting with -rc1 - b. nuke any preinstalled Apache-Reload libs and run 'make test' + b. commit Changes + % svn ci -m "0.14 rc1" Changes - c. test that you can 'make install' and then run 'make test' again + c. nuke any preinstalled Apache-Reload libs and run 'make test' - d. test whether we still 100% OK on systems with no LWP: + d. test that you can 'make install' and then run 'make test' again + e. test whether we are still 100% OK on systems with no LWP: % APACHE_TEST_PRETEND_NO_LWP=1 make test -2. once confident that the package is good, upload a release candidate - to people.apache.org/~username and post 24 hour-ish candidate alert - to the various lists +2. once confident that the package is good, commit the release candidate + to https://dist.apache.org/repos/dist/dev/perl and post 24 hour-ish + candidate alert to the various lists o dev/perl.apache.org o modperl/perl.apache.org - Subject: [RELEASE CANDIDATE] Apache-Reload 0.13 RC\d+ - (or maybe longer to give most people a chance to catch up). no need to tag this package + Subject: [RELEASE CANDIDATE] Apache-Reload 0.14 RC\d+ + a. if problems are detected during stage 2, repeat stages 1 and 2. 3. when the package has been reported to be good, prepare a new @@ -61,7 +62,7 @@ % make -n tag c. commit Changes - % svn ci Changes + % svn ci -m "0.14 release" Changes d. tag % make tag @@ -75,11 +76,15 @@ 5. Announce the package - a. post ... to the modperl, announce lists - Subject: [ANNOUNCE] Apache-Reload 0.13 - include - - MD5 sig (as it comes from CPAN upload announce). - - the latest Changes + a. post to the following list: + + o modperl/perl.apache.org + + Subject: [ANNOUNCE] Apache-Reload 0.14 + + include: + - MD5 sig (as it comes from CPAN upload announce). + - the latest Changes 6. Prepare for the next cycle @@ -88,15 +93,14 @@ b. edit ./Changes: - start a new item with incremented version + '-dev' - =item 0.14-dev + =item 0.15-dev c. bump up version numbers in this file to make it easier to do the next release. - - $ perl -pi -e 's/(\d+)\.(\d+)/join(".", $1, $2+1)/eg' RELEASE + % perl -pi.bak -e 's/(\d+)\.(\d+)/join(".", $1, $2+1)/eg' RELEASE (undo the change to the PAUSE menu item number in item 0d. above) d. commit Changes - % svn ci -m "start 0.13-dev cycle" Changes RELEASE \ + % svn ci -m "start 0.14-dev cycle" Changes RELEASE \ lib/Apache/Reload.pm lib/Apache2/Reload.pm diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/Apache-Reload/lib/Apache/Reload.pm new/mod_perl-2.0.13/Apache-Reload/lib/Apache/Reload.pm --- old/mod_perl-2.0.12/Apache-Reload/lib/Apache/Reload.pm 2022-01-30 14:02:19.000000000 +0100 +++ new/mod_perl-2.0.13/Apache-Reload/lib/Apache/Reload.pm 2023-10-21 11:47:11.000000000 +0200 @@ -17,7 +17,7 @@ use strict; -$Apache::Reload::VERSION = '0.13'; +$Apache::Reload::VERSION = '0.14'; use vars qw(%INCS %Stat $TouchTime %UndefFields %Ignore); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/Apache-Reload/lib/Apache2/Reload.pm new/mod_perl-2.0.13/Apache-Reload/lib/Apache2/Reload.pm --- old/mod_perl-2.0.12/Apache-Reload/lib/Apache2/Reload.pm 2022-01-30 14:02:19.000000000 +0100 +++ new/mod_perl-2.0.13/Apache-Reload/lib/Apache2/Reload.pm 2023-10-21 11:47:11.000000000 +0200 @@ -18,7 +18,7 @@ use strict; use warnings FATAL => 'all'; -our $VERSION = '0.13'; +our $VERSION = '0.14'; use Apache2::Const -compile => qw(OK); @@ -363,7 +363,7 @@ Apache2::Reload->unregister_module('Some::Module'); -But be carefull, since unregistering a module in this way will only +But be careful, since unregistering a module in this way will only do so for the current interpreter. This feature should be used with care. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/Apache-SizeLimit/Changes new/mod_perl-2.0.13/Apache-SizeLimit/Changes --- old/mod_perl-2.0.12/Apache-SizeLimit/Changes 2022-01-30 14:02:19.000000000 +0100 +++ new/mod_perl-2.0.13/Apache-SizeLimit/Changes 2023-10-21 11:47:11.000000000 +0200 @@ -6,6 +6,22 @@ =over 6 +=item 0.98 August 06, 2023 + +Overhaul $VERSION numbering scheme to align with other mod_perl modules and +avoid warnings from ExtUtils::MakeMaker. +[Steve Hay] + +Remove use of Linux::Smaps - it is slow and uses wrong statistics anyway. +[Zefram <zef...@fysh.org>, CPAN RT#93757] + +Fix unshared memory values when using /proc/self/statm. +[Zefram <zef...@fysh.org>, CPAN RT#73752] + +Fix unnecessary FAIL reports on CPAN Testers by checking for mod_perl or +mod_perl2. +[Andreas Koenig <a...@cpan.org>; Steve Hay] + =item 0.97 2012-04-02 Set the -apxs argument correctly when building from mod_perl. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/Apache-SizeLimit/Makefile.PL new/mod_perl-2.0.13/Apache-SizeLimit/Makefile.PL --- old/mod_perl-2.0.12/Apache-SizeLimit/Makefile.PL 2022-01-30 14:02:19.000000000 +0100 +++ new/mod_perl-2.0.13/Apache-SizeLimit/Makefile.PL 2023-10-21 11:47:11.000000000 +0200 @@ -12,7 +12,7 @@ # also set MP_APXS if ($ENV{MOD_PERL_2_BUILD}) { push @ARGV, "-apxs", $ENV{MP_APXS}; - my $mp_gen = satisfy_mp_generation(2); + $mp_gen = satisfy_mp_generation(2); } else { $mp_gen = satisfy_mp_generation(); @@ -23,9 +23,6 @@ unless ( $ARGV[0] eq '--dist' || $ENV{MOD_PERL_2_BUILD} ) { if ( $Config{'osname'} eq 'linux' ) { $prereqs{'Linux::Pid'} = 0; - if ( -e '/proc/self/smaps' ) { - $prereqs{'Linux::Smaps'} = 0; - } } elsif ( $Config{'osname'} =~ /(bsd|aix)/i ) { $prereqs{'BSD::Resource'} = 0; @@ -37,8 +34,18 @@ my $HAS_APACHE_TEST = check_for_apache_test(); +my $VERSION; +set_apache_sizelimit_version(); + my %common_opts = ( + VERSION => $VERSION, PREREQ_PM => \%prereqs, + dist => { + COMPRESS => 'gzip -9f', SUFFIX => 'gz', + PREOP => 'find $(DISTVNAME) -type d -print|xargs chmod 0755 && ' . + 'find $(DISTVNAME) -type f -print|xargs chmod 0644', + TO_UNIX => 'find $(DISTVNAME) -type f -print|xargs dos2unix' + }, clean => { FILES => 't/TEST' }, ); @@ -52,7 +59,6 @@ require ExtUtils::MakeMaker; ExtUtils::MakeMaker::WriteMakefile( %common_opts, - VERSION_FROM => "lib/Apache/SizeLimit.pm", NAME => "Apache::SizeLimit", ABSTRACT_FROM => 'lib/Apache/SizeLimit.pm', ); @@ -62,7 +68,6 @@ require ModPerl::MM; ModPerl::MM::WriteMakefile( %common_opts, - VERSION_FROM => "lib/Apache2/SizeLimit.pm", NAME => "Apache2::SizeLimit", ABSTRACT_FROM => 'lib/Apache2/SizeLimit.pm', ); @@ -71,7 +76,7 @@ sub check_for_apache_test { return unless eval { require Apache::Test; - if ($Apache::Test::VERSION < $at_min_ver) { + if ($Apache::Test::VERSION < $at_min_ver) { die "Apache::Test version is " . $Apache::Test::VERSION . ", minimum version required is $at_min_ver" . ", tests will be skipped\n"; @@ -90,6 +95,28 @@ return 1; } +sub set_apache_sizelimit_version { + # We cannot require Apache::SizeLimit or Apache2::SizeLimit to access their + # $VERSIONs because they depend on Apache::Constants / Apache2::Const and at + # least the latter cannot be loaded in a command-line script (at least not + # on Windows, where it fails to load because ModPerl/Const/Const.dll cannot + # be loaded). Even Apache::SizeLimit::Core cannot be loaded on Windows + # because it is not implemented on that platform. So instead we use MM's + # parse_version() method to read the $VERSION for us. + $VERSION = MM->parse_version('lib/Apache/SizeLimit.pm'); + + my $fh = Symbol::gensym(); + open $fh, 'Changes' or die "Can't open Changes: $!"; + while (<$fh>) { + if(/^=item.*-(dev|rc\d+)/) { + $VERSION .= "-$1"; + last; + } + last if /^=item/; + } + close $fh; +} + # If a specific generation was passed as an argument, # if satisfied # return the same generation @@ -111,13 +138,14 @@ unless ($wanted == 1 || $wanted == 2) { die "don't know anything about mod_perl generation: $wanted\n" . - "currently supporting only generations 1 and 2"; + "currently supporting only generations 1 and 2.\n" . + "Please specify MOD_PERL=1 or MOD_PERL=2 on the commandline\n"; } my $selected = 0; if ($wanted == 1) { - require_mod_perl(); + require_mod_perl(1); if ($mod_perl::VERSION >= 1.99) { # so we don't pick 2.0 version if 1.0 is wanted die "You don't seem to have mod_perl 1.0 installed"; @@ -126,7 +154,7 @@ } elsif ($wanted == 2) { #warn "Looking for mod_perl 2.0"; - require_mod_perl(); + require_mod_perl(2); if ($mod_perl::VERSION < 2.0) { die "You don't seem to have mod_perl 2.0 installed"; } @@ -142,9 +170,25 @@ } sub require_mod_perl { - - eval { require mod_perl }; - eval { require mod_perl2 } if ($@); + my($rversion) = @_; + if (!$rversion || $rversion==1){ + eval { require mod_perl }; + if ($rversion == 1){ + if ($@){ + warn "Note: Did not find mod_perl installed\n"; + } + return; # do not die, let PREREQ_PM handle it + } + } + if ($@ || !$rversion || $rversion==2){ + eval { require mod_perl2 }; + if ($rversion == 2){ + if ($@){ + warn "Note: Did not find mod_perl2 installed\n"; + } + return; # do not die, let PREREQ_PM handle it + } + } die "Can't find mod_perl installed\nThe error was: $@" if $@; } @@ -201,7 +245,7 @@ unshift @INC, $atlib if -d $atlib; } - eval { require mod_perl2 } if ($@); + eval { require mod_perl2 }; unless ($@) { $wanted = 2; } @@ -219,12 +263,13 @@ sub postamble { my $self = shift; + my $q = ($^O =~ /MSWin32/i ? '"' : "'"); + my $string = $self->SUPER::postamble; - $string .= <<'EOF'; + $string .= <<"EOF"; tag : - svn copy https://svn.apache.org/repos/asf/perl/Apache-SizeLimit/trunk https://svn.apache.org/repos/asf/perl/Apache-SizeLimit/tags/$(VERSION_SYM) - @echo update lib/Apache/SizeLimit.pm VERSION now + svn copy -m $q\$(VERSION_SYM) tag$q https://svn.apache.org/repos/asf/perl/Apache-SizeLimit/trunk https://svn.apache.org/repos/asf/perl/Apache-SizeLimit/tags/\$(VERSION_SYM) EOF return $string; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/Apache-SizeLimit/README new/mod_perl-2.0.13/Apache-SizeLimit/README --- old/mod_perl-2.0.12/Apache-SizeLimit/README 2022-01-30 14:02:19.000000000 +0100 +++ new/mod_perl-2.0.13/Apache-SizeLimit/README 2023-10-21 11:47:11.000000000 +0200 @@ -13,7 +13,7 @@ PerlCleanupHandler Apache2::SizeLimit DESCRIPTION - ******************************** NOIICE ******************* + ******************************** NOTICE ******************* This version is only for httpd 2.x and mod_perl 2.x series. @@ -140,77 +140,6 @@ "Apache2::SizeLimit->set_check_interval()" to reduce how often this read happens. - As of linux 2.6, /proc/self/statm does not report the amount of memory - shared by the copy-on-write mechanism as shared memory. This means that - decisions made based on shared memory as reported by that interface are - inherently wrong. - - However, as of the 2.6.14 release of the kernel, there is - /proc/self/smaps entry for each process. /proc/self/smaps reports - various sizes for each memory segment of a process and allows us to - count the amount of shared memory correctly. - - If "Apache2::SizeLimit" detects a kernel that supports /proc/self/smaps - and the "Linux::Smaps" module is installed it will use that module - instead of /proc/self/statm. - - Reading /proc/self/smaps is expensive compared to /proc/self/statm. It - must look at each page table entry of a process. Further, on - multiprocessor systems the access is synchronized with spinlocks. Again, - you might consider using "Apache2::SizeLimit->set_check_interval()". - - Copy-on-write and Shared Memory - The following example shows the effect of copy-on-write: - - <Perl> - require Apache2::SizeLimit; - package X; - use strict; - use Apache2::Const -compile => qw(OK); - - my $x = "a" x (1024*1024); - - sub handler { - my $r = shift; - my ($size, $shared) = $Apache2::SizeLimit->_check_size(); - $x =~ tr/a/b/; - my ($size2, $shared2) = $Apache2::SizeLimit->_check_size(); - $r->content_type('text/plain'); - $r->print("1: size=$size shared=$shared\n"); - $r->print("2: size=$size2 shared=$shared2\n"); - return OK; - } - </Perl> - - <Location /X> - SetHandler modperl - PerlResponseHandler X - </Location> - - The parent Apache process allocates memory for the string in $x. The - "tr"-command then overwrites all "a" with "b" if the handler is called - with an argument. This write is done in place, thus, the process size - doesn't change. Only $x is not shared anymore by means of copy-on-write - between the parent and the child. - - If /proc/self/smaps is available curl shows: - - r2@s93:~/work/mp2> curl http://localhost:8181/X - 1: size=13452 shared=7456 - 2: size=13452 shared=6432 - - Shared memory has lost 1024 kB. The process' overall size remains - unchanged. - - Without /proc/self/smaps it says: - - r2@s93:~/work/mp2> curl http://localhost:8181/X - 1: size=13052 shared=3628 - 2: size=13052 shared=3636 - - One can see the kernel lies about the shared memory. It simply doesn't - count copy-on-write pages as shared. - solaris 2.6 and above For solaris we simply retrieve the size of /proc/self/as, which contains the address-space image of the process, and convert to KB. Shared memory @@ -275,7 +204,6 @@ * $Apache2::SizeLimit::MIN_SHARE_SIZE * $Apache2::SizeLimit::MAX_UNSHARED_SIZE * $Apache2::SizeLimit::CHECK_EVERY_N_REQUESTS - * $Apache2::SizeLimit::USE_SMAPS Direct use of these globals is deprecated, but will continue to work for the foreseeable future. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/Apache-SizeLimit/RELEASE new/mod_perl-2.0.13/Apache-SizeLimit/RELEASE --- old/mod_perl-2.0.12/Apache-SizeLimit/RELEASE 2022-01-30 14:02:19.000000000 +0100 +++ new/mod_perl-2.0.13/Apache-SizeLimit/RELEASE 2023-10-21 11:47:11.000000000 +0200 @@ -1,36 +1,36 @@ Instructions for Apache-SizeLimit Release Manager -0. Ask the PMC to verify that you have the appropriate CPAN permissions - on dev@perl. +0. Ask the PMC to verify that you have the appropriate CPAN permissions + on dev@perl. - make sure your public key is in the KEYS file in the mod_perl docs. - you should only need to do this if this is your first time playing - Release Manager + make sure your public key is in the KEYS file in the mod_perl docs. + you should only need to do this if this is your first time playing + Release Manager $ cd mod_perl-docs $ grep $USER src/dist/KEYS - note that the KEYS file itself contains all the instructions you - need on how to add your key. if you need further help on gpg - (like how to create a key in the first place) you can look here + note that the KEYS file itself contains all the instructions you + need on how to add your key. if you need further help on gpg + (like how to create a key in the first place) you can look here http://people.apache.org/~geoff/gpghowto.html - Copy the KEYS file into place: - % scp KEYS www.apache.org:/www/www.apache.org/dist/perl/KEYS + Copy the KEYS file into place: + % scp KEYS www.apache.org:/www/www.apache.org/dist/perl/KEYS - If this is your first release, ask someone with APML karma on PAUSE - to verify you have the appropriate permissions. Likely someone on - the PMC can do this. - - a. login into https://pause.perl.org - b. menu click: Select Mailinglist/Action - c. choose APML and share_perms and click go - d. click 3.5 Make somebody else co-maintainer - e. choose the modules to give the perms to - type the username of the new co-maintainer - f. if you happen to know that packages were added this release, - make sure you give the correct permissions to them. + If this is your first release, ask someone with APML karma on PAUSE + to verify you have the appropriate permissions. Likely someone on + the PMC can do this. + + a. login into https://pause.perl.org + b. menu click: Select Mailinglist/Action + c. choose APML and share_perms and click go + d. click 3.6 Make somebody else co-maintainer + e. choose the modules to give the perms to + type the username of the new co-maintainer + f. if you happen to know that packages were added this release, + make sure you give the correct permissions to them. TODO: 1/2. run pod2text to update the README and commit any changes if neccessary. @@ -38,50 +38,44 @@ and Apache2::SizeLimit 3/4. Configure - - MAINTAINER_BUILDING_RELEASE=1 perl Makefile.PL + % MAINTAINER_BUILDING_RELEASE=1 perl Makefile.PL 1. 'make dist' - to make sure nothing is missing from the manifest, etc. Now test this generated package (not svn) with as many configurations as possible on as many platforms as possible. a. edit ./Changes: - - find lib -type f \( -name "*.pm" -o -name "Changes" \) | \ - xargs perl -pi -e 's,0.95-dev,0.96-rc1,g' - - - don't commit these (see dev@ archives) + - change -dev to -rc\d+ starting with -rc1 - b. nuke any preinstalled Apache-SizeLimit libs and run 'make test' + b. commit Changes + % svn ci -m "0.98 rc1" Changes - c. test that you can 'make install' and then run 'make test' again + c. nuke any preinstalled Apache-SizeLimit libs and run 'make test' - d. test whether we still 100% OK on systems with no LWP: + d. test that you can 'make install' and then run 'make test' again + e. test whether we are still 100% OK on systems with no LWP: % APACHE_TEST_PRETEND_NO_LWP=1 make test -2. once confident that the package is good, upload a release candidate - to people.apache.org/~username and post 24 hour-ish candidate alert - to the various lists +2. once confident that the package is good, commit the release candidate + to https://dist.apache.org/repos/dist/dev/perl and post 24 hour-ish + candidate alert to the various lists o dev/perl.apache.org o modperl/perl.apache.org - Subject: [RELEASE CANDIDATE] Apache-SizeLimit 0.96 RC\d+ - (or maybe longer to give most people a chance to catch up). no need to tag this package - a. if problems are detected during stage 2, repeat stages 1 and 2. + Subject: [RELEASE CANDIDATE] Apache-SizeLimit 0.98 RC\d+ - $ md5 Apache-SizeLimit-0.96-rc1.tar.gz > Apache-SizeLimit-0.96-rc1.tar.gz.md5 - $ sha256 Apache-SizeLimit-0.96-rc1.tar.gz > Apache-SizeLimit-0.96-rc1.tar.gz.sha256 - $ gpg --detach-sign --armor Apache-SizeLimit-0.96-rc1.tar.gz + a. if problems are detected during stage 2, repeat stages 1 and 2. 3. when the package has been reported to be good, prepare a new package to be released a. edit ./Changes: - - remove -rc\d+ (also remove this from modules) + - remove -rc\d+ - add release date b. rerun: @@ -89,8 +83,8 @@ make sure tag looks right % make -n tag - c. commit Changes and modules - % svn ci Changes lib/ + c. commit Changes + % svn ci -m "0.98 release" Changes d. tag % make tag @@ -104,25 +98,28 @@ 5. Announce the package - a. post ... to the modperl, announce lists - Subject: [ANNOUNCE] Apache-SizeLimit 0.96 - include - - MD5 sig (as it comes from CPAN upload announce). - - the latest Changes + a. post to the following list: + + o modperl/perl.apache.org + + Subject: [ANNOUNCE] Apache-SizeLimit 0.98 + + include: + - MD5 sig (as it comes from CPAN upload announce). + - the latest Changes 6. Prepare for the next cycle - a. increment version in lib/Apache/SizeLimit.pm + a. increment version in lib/Apache/SizeLimit.pm, lib/Apache2/SizeLimit.pm and lib/Apache/SizeLimit/Core.pm b. edit ./Changes: - start a new item with incremented version + '-dev' - =item 0.97-dev + =item 0.99-dev c. bump up version numbers in this file to make it easier to do the next release. - - $ perl -pi -e 's/(\d+)\.(\d+)/join(".", $1, $2+1)/eg' RELEASE + % perl -pi.bak -e 's/(\d+)\.(\d+)/join(".", $1, $2+1)/eg' RELEASE d. commit Changes - % svn ci -m "start 0.97-dev cycle" Changes RELEASE lib/Apache/SizeLimit.pm lib/Apache2/SizeLimit.pm lib/Apache/SizeLimit/Core.pm + % svn ci -m "start 0.99-dev cycle" Changes RELEASE lib/Apache/SizeLimit.pm lib/Apache2/SizeLimit.pm lib/Apache/SizeLimit/Core.pm diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/Apache-SizeLimit/lib/Apache/SizeLimit/Core.pm new/mod_perl-2.0.13/Apache-SizeLimit/lib/Apache/SizeLimit/Core.pm --- old/mod_perl-2.0.12/Apache-SizeLimit/lib/Apache/SizeLimit/Core.pm 2022-01-30 14:02:19.000000000 +0100 +++ new/mod_perl-2.0.13/Apache-SizeLimit/lib/Apache/SizeLimit/Core.pm 2023-10-21 11:47:11.000000000 +0200 @@ -24,7 +24,6 @@ use vars qw( $VERSION $REQUEST_COUNT - $USE_SMAPS $MAX_PROCESS_SIZE $MAX_UNSHARED_SIZE @@ -41,7 +40,6 @@ @EXPORT_OK = qw( $VERSION $REQUEST_COUNT - $USE_SMAPS $MAX_PROCESS_SIZE $MAX_UNSHARED_SIZE $MIN_SHARE_SIZE @@ -49,7 +47,7 @@ $START_TIME ); -$VERSION = '0.97'; +$VERSION = '0.98'; $REQUEST_COUNT = 1; @@ -140,17 +138,8 @@ } elsif ($Config{'osname'} eq 'linux') { _load('Linux::Pid'); - *_platform_getppid = \&_linux_getppid; - - if (eval { require Linux::Smaps && Linux::Smaps->new($$) }) { - $USE_SMAPS = 1; - *_platform_check_size = \&_linux_smaps_size_check; - } - else { - $USE_SMAPS = 0; - *_platform_check_size = \&_linux_size_check; - } + *_platform_check_size = \&_linux_size_check; } elsif ($Config{'osname'} =~ /(?:bsd|aix)/i) { # on OSX, getrusage() is returning 0 for proc & shared size. @@ -170,24 +159,13 @@ } } -sub _linux_smaps_size_check { - my $class = shift; - - return $class->_linux_size_check() unless $USE_SMAPS; - - my $s = Linux::Smaps->new($$)->all; - return ($s->size, - $s->shared_clean + $s->shared_dirty, - $s->private_clean + $s->private_dirty); -} - sub _linux_size_check { my $class = shift; - my ($size, $share) = (0, 0); + my ($size, $data) = (0, 0); if (open my $fh, '<', '/proc/self/statm') { - ($size, $share) = (split /\s/, scalar <$fh>)[0,2]; + ($size, $data) = (split /\s/, scalar <$fh>)[0,5]; close $fh; } else { @@ -195,7 +173,9 @@ } # linux on intel x86 has 4KB page size... - return ($size * 4, $share * 4); + $size <<= 2; + $data <<= 2; + return ($size, $size - $data, $data); } sub _solaris_2_6_size_check { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/Apache-SizeLimit/lib/Apache/SizeLimit.pm new/mod_perl-2.0.13/Apache-SizeLimit/lib/Apache/SizeLimit.pm --- old/mod_perl-2.0.12/Apache-SizeLimit/lib/Apache/SizeLimit.pm 2022-01-30 14:02:19.000000000 +0100 +++ new/mod_perl-2.0.13/Apache-SizeLimit/lib/Apache/SizeLimit.pm 2023-10-21 11:47:11.000000000 +0200 @@ -26,7 +26,7 @@ use vars qw($VERSION); -$VERSION = '0.97'; +$VERSION = '0.98'; use Apache::SizeLimit::Core qw( $MAX_PROCESS_SIZE @@ -34,7 +34,6 @@ $MIN_SHARE_SIZE $CHECK_EVERY_N_REQUESTS $START_TIME - $USE_SMAPS $VERSION $REQUEST_COUNT ); @@ -171,7 +170,7 @@ =head1 DESCRIPTION -******************************** NOIICE ******************* +******************************** NOTICE ******************* This version is only for httpd 1.3.x and mod_perl 1.x series. @@ -323,78 +322,6 @@ Apache::SizeLimit->set_check_interval() >> to reduce how often this read happens. -As of linux 2.6, F</proc/self/statm> does not report the amount of -memory shared by the copy-on-write mechanism as shared memory. This -means that decisions made based on shared memory as reported by that -interface are inherently wrong. - -However, as of the 2.6.14 release of the kernel, there is -F</proc/self/smaps> entry for each process. F</proc/self/smaps> -reports various sizes for each memory segment of a process and allows -us to count the amount of shared memory correctly. - -If C<Apache::SizeLimit> detects a kernel that supports -F</proc/self/smaps> and the C<Linux::Smaps> module is installed it -will use that module instead of F</proc/self/statm>. - -Reading F</proc/self/smaps> is expensive compared to -F</proc/self/statm>. It must look at each page table entry of a -process. Further, on multiprocessor systems the access is -synchronized with spinlocks. Again, you might consider using C<< -Apache::SizeLimit->set_check_interval() >>. - -=head3 Copy-on-write and Shared Memory - -The following example shows the effect of copy-on-write: - - <Perl> - require Apache::SizeLimit; - package X; - use strict; - use Apache::Constants qw(OK); - - my $x = "a" x (1024*1024); - - sub handler { - my $r = shift; - my ($size, $shared) = $Apache::SizeLimit->_check_size(); - $x =~ tr/a/b/; - my ($size2, $shared2) = $Apache::SizeLimit->_check_size(); - $r->content_type('text/plain'); - $r->print("1: size=$size shared=$shared\n"); - $r->print("2: size=$size2 shared=$shared2\n"); - return OK; - } - </Perl> - - <Location /X> - SetHandler modperl - PerlResponseHandler X - </Location> - -The parent Apache process allocates memory for the string in -C<$x>. The C<tr>-command then overwrites all "a" with "b" if the -handler is called with an argument. This write is done in place, thus, -the process size doesn't change. Only C<$x> is not shared anymore by -means of copy-on-write between the parent and the child. - -If F</proc/self/smaps> is available curl shows: - - r2@s93:~/work/mp2> curl http://localhost:8181/X - 1: size=13452 shared=7456 - 2: size=13452 shared=6432 - -Shared memory has lost 1024 kB. The process' overall size remains unchanged. - -Without F</proc/self/smaps> it says: - - r2@s93:~/work/mp2> curl http://localhost:8181/X - 1: size=13052 shared=3628 - 2: size=13052 shared=3636 - -One can see the kernel lies about the shared memory. It simply doesn't -count copy-on-write pages as shared. - =head2 solaris 2.6 and above For solaris we simply retrieve the size of F</proc/self/as>, which @@ -475,8 +402,6 @@ =item * $Apache::SizeLimit::CHECK_EVERY_N_REQUESTS -=item * $Apache::SizeLimit::USE_SMAPS - =back Direct use of these globals is deprecated, but will continue to work diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/Apache-SizeLimit/lib/Apache2/SizeLimit.pm new/mod_perl-2.0.13/Apache-SizeLimit/lib/Apache2/SizeLimit.pm --- old/mod_perl-2.0.12/Apache-SizeLimit/lib/Apache2/SizeLimit.pm 2022-01-30 14:02:19.000000000 +0100 +++ new/mod_perl-2.0.13/Apache-SizeLimit/lib/Apache2/SizeLimit.pm 2023-10-21 11:47:11.000000000 +0200 @@ -34,7 +34,7 @@ use constant IS_WIN32 => $Config{'osname'} eq 'MSWin32' ? 1 : 0; # 2.x requires 5.6.x+ so 'our' is okay -our $VERSION = '0.97'; +our $VERSION = '0.98'; use Apache::SizeLimit::Core qw( $MAX_PROCESS_SIZE @@ -42,7 +42,6 @@ $MIN_SHARE_SIZE $CHECK_EVERY_N_REQUESTS $START_TIME - $USE_SMAPS $VERSION $REQUEST_COUNT ); @@ -174,7 +173,7 @@ =head1 DESCRIPTION -******************************** NOIICE ******************* +******************************** NOTICE ******************* This version is only for httpd 2.x and mod_perl 2.x series. @@ -326,78 +325,6 @@ Apache2::SizeLimit->set_check_interval() >> to reduce how often this read happens. -As of linux 2.6, F</proc/self/statm> does not report the amount of -memory shared by the copy-on-write mechanism as shared memory. This -means that decisions made based on shared memory as reported by that -interface are inherently wrong. - -However, as of the 2.6.14 release of the kernel, there is -F</proc/self/smaps> entry for each process. F</proc/self/smaps> -reports various sizes for each memory segment of a process and allows -us to count the amount of shared memory correctly. - -If C<Apache2::SizeLimit> detects a kernel that supports -F</proc/self/smaps> and the C<Linux::Smaps> module is installed it -will use that module instead of F</proc/self/statm>. - -Reading F</proc/self/smaps> is expensive compared to -F</proc/self/statm>. It must look at each page table entry of a -process. Further, on multiprocessor systems the access is -synchronized with spinlocks. Again, you might consider using C<< -Apache2::SizeLimit->set_check_interval() >>. - -=head3 Copy-on-write and Shared Memory - -The following example shows the effect of copy-on-write: - - <Perl> - require Apache2::SizeLimit; - package X; - use strict; - use Apache2::Const -compile => qw(OK); - - my $x = "a" x (1024*1024); - - sub handler { - my $r = shift; - my ($size, $shared) = $Apache2::SizeLimit->_check_size(); - $x =~ tr/a/b/; - my ($size2, $shared2) = $Apache2::SizeLimit->_check_size(); - $r->content_type('text/plain'); - $r->print("1: size=$size shared=$shared\n"); - $r->print("2: size=$size2 shared=$shared2\n"); - return OK; - } - </Perl> - - <Location /X> - SetHandler modperl - PerlResponseHandler X - </Location> - -The parent Apache process allocates memory for the string in -C<$x>. The C<tr>-command then overwrites all "a" with "b" if the -handler is called with an argument. This write is done in place, thus, -the process size doesn't change. Only C<$x> is not shared anymore by -means of copy-on-write between the parent and the child. - -If F</proc/self/smaps> is available curl shows: - - r2@s93:~/work/mp2> curl http://localhost:8181/X - 1: size=13452 shared=7456 - 2: size=13452 shared=6432 - -Shared memory has lost 1024 kB. The process' overall size remains unchanged. - -Without F</proc/self/smaps> it says: - - r2@s93:~/work/mp2> curl http://localhost:8181/X - 1: size=13052 shared=3628 - 2: size=13052 shared=3636 - -One can see the kernel lies about the shared memory. It simply doesn't -count copy-on-write pages as shared. - =head2 solaris 2.6 and above For solaris we simply retrieve the size of F</proc/self/as>, which @@ -478,8 +405,6 @@ =item * $Apache2::SizeLimit::CHECK_EVERY_N_REQUESTS -=item * $Apache2::SizeLimit::USE_SMAPS - =back Direct use of these globals is deprecated, but will continue to work diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/Apache-SizeLimit/t/apache/all.t new/mod_perl-2.0.13/Apache-SizeLimit/t/apache/all.t --- old/mod_perl-2.0.12/Apache-SizeLimit/t/apache/all.t 2022-01-30 14:02:19.000000000 +0100 +++ new/mod_perl-2.0.13/Apache-SizeLimit/t/apache/all.t 2023-10-21 11:47:11.000000000 +0200 @@ -15,9 +15,6 @@ if ( $Config{'osname'} eq 'linux' ) { $ok = need_module('Linux::Pid'); - if ( -e '/proc/self/smaps' ) { - $ok &= need_module('Linux::Smaps'); - } } elsif ( $Config{'osname'} =~ /(bsd|aix)/i ) { $ok &= need_module('BSD::Resource'); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/Apache-SizeLimit/t/apache2/all.t new/mod_perl-2.0.13/Apache-SizeLimit/t/apache2/all.t --- old/mod_perl-2.0.12/Apache-SizeLimit/t/apache2/all.t 2022-01-30 14:02:19.000000000 +0100 +++ new/mod_perl-2.0.13/Apache-SizeLimit/t/apache2/all.t 2023-10-21 11:47:11.000000000 +0200 @@ -15,9 +15,6 @@ if ( $Config{'osname'} eq 'linux' ) { $ok = need_module('Linux::Pid'); - if ( -e '/proc/self/smaps' ) { - $ok &= need_module('Linux::Smaps'); - } } elsif ( $Config{'osname'} =~ /(bsd|aix)/i ) { $ok &= need_module('BSD::Resource'); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/Apache-SizeLimit/t/response/TestApache/basic.pm new/mod_perl-2.0.13/Apache-SizeLimit/t/response/TestApache/basic.pm --- old/mod_perl-2.0.12/Apache-SizeLimit/t/response/TestApache/basic.pm 2022-01-30 14:02:19.000000000 +0100 +++ new/mod_perl-2.0.13/Apache-SizeLimit/t/response/TestApache/basic.pm 2023-10-21 11:47:11.000000000 +0200 @@ -30,12 +30,8 @@ cmp_ok( $size, '>', 0, 'proc size is reported > 0' ); { - # test with USE_SMAPS=0 - my $smaps = $Apache::SizeLimit::USE_SMAPS; - $Apache::SizeLimit::USE_SMAPS = 0; my ( $size, $shared ) = Apache::SizeLimit->_check_size(); cmp_ok( $size, '>', 0, 'proc size is reported > 0' ); - $Apache::SizeLimit::USE_SMAPS = $smaps; } SKIP: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/Apache-SizeLimit/t/response/TestApache2/basic.pm new/mod_perl-2.0.13/Apache-SizeLimit/t/response/TestApache2/basic.pm --- old/mod_perl-2.0.12/Apache-SizeLimit/t/response/TestApache2/basic.pm 2022-01-30 14:02:19.000000000 +0100 +++ new/mod_perl-2.0.13/Apache-SizeLimit/t/response/TestApache2/basic.pm 2023-10-21 11:47:11.000000000 +0200 @@ -30,12 +30,8 @@ cmp_ok( $size, '>', 0, 'proc size is reported > 0' ); { - # test with USE_SMAPS=0 - my $smaps = $Apache2::SizeLimit::USE_SMAPS; - $Apache2::SizeLimit::USE_SMAPS = 0; my ( $size, $shared ) = Apache2::SizeLimit->_check_size(); cmp_ok( $size, '>', 0, 'proc size is reported > 0' ); - $Apache2::SizeLimit::USE_SMAPS = $smaps; } SKIP: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/Changes new/mod_perl-2.0.13/Changes --- old/mod_perl-2.0.12/Changes 2022-01-30 14:02:20.000000000 +0100 +++ new/mod_perl-2.0.13/Changes 2023-10-21 11:47:11.000000000 +0200 @@ -12,6 +12,15 @@ =over 3 +=item 2.0.13 October 21, 2023 + +Use get_server_banner() instead of deprecated get_server_version() in +Apache2::Status. [Petr PÃsaÅ <ppi...@redhat.com] + +Avoid generating APR precompiled headers. [Sam James <s...@gentoo.org>] + +Fix build for perl >= 5.37.1. [Jitka Plesnikova <jples...@redhat.com>] + =item 2.0.12 January 30, 2022 Add bug tracker information to README, and add CONTRIBUTING.md. [Steve Hay] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/META.yml new/mod_perl-2.0.13/META.yml --- old/mod_perl-2.0.12/META.yml 2022-01-30 14:02:21.000000000 +0100 +++ new/mod_perl-2.0.13/META.yml 2023-10-21 11:47:12.000000000 +0200 @@ -1,5 +1,5 @@ name: mod_perl -version: 2.0.12 +version: 2.0.13 installdirs: site distribution_type: module no_index: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/README new/mod_perl-2.0.13/README --- old/mod_perl-2.0.12/README 2022-01-30 14:02:21.000000000 +0100 +++ new/mod_perl-2.0.13/README 2023-10-21 11:47:13.000000000 +0200 @@ -3,8 +3,8 @@ *** Prerequisites *** Apache: - Dynamic mod_perl (DSO): Apache 2.0.47 - 2.4.51. - Static mod_perl: Apache 2.0.51 - 2.4.51. + Dynamic mod_perl (DSO): Apache 2.0.47 - 2.4.57. + Static mod_perl: Apache 2.0.51 - 2.4.57. Newer Apache versions may work with this version of mod_perl. If not, the svn version likely will, which can be obtained from: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/RELEASE new/mod_perl-2.0.13/RELEASE --- old/mod_perl-2.0.12/RELEASE 2022-01-30 14:02:21.000000000 +0100 +++ new/mod_perl-2.0.13/RELEASE 2023-10-21 11:47:13.000000000 +0200 @@ -30,7 +30,7 @@ make sure you give the correct permissions to them. 1. 'make mydist' - to make sure nothing is missing from the manifest, - etc. Now test this generated package mod_perl-2.0.12.tar.gz (not + etc. Now test this generated package mod_perl-2.0.13.tar.gz (not the current build) with as many configurations as possible on as many platforms as possible, unpacking the package each time afresh. @@ -40,7 +40,7 @@ - edit META.yml to the rc\d version above in the version key b. commit Changes - % svn ci -m "2.0.12 rc1" Changes + % svn ci -m "2.0.13 rc1" Changes c. nuke any preinstalled mod_perl libs and run 'make test' @@ -58,7 +58,7 @@ candidate alert to the modperl/dev list (may be longer to give most people a chance to catch up). no need to tag this package - Subject: [RELEASE CANDIDATE]: mod_perl-2.0.12 RC\d+ + Subject: [RELEASE CANDIDATE]: mod_perl-2.0.13 RC\d+ 2a. if problems are detected during stage 2, repeat stages 1 and 2. @@ -79,28 +79,28 @@ % make -n tag d. commit Changes README Makefile.PL - % svn ci -m "2.0.12 release" Changes README Makefile.PL + % svn ci -m "2.0.13 release" Changes README Makefile.PL e. tag % make tag f. Update the svn:externals in the new tag to refer to the new docs tag that was created by the previous step: - % svn co https://svn.apache.org/repos/asf/perl/modperl/tags/2_0_12 - % svn propedit svn:externals 2_0_12 + % svn co https://svn.apache.org/repos/asf/perl/modperl/tags/2_0_13 + % svn propedit svn:externals 2_0_13 Update the docs line from: ^/perl/modperl/docs/trunk/src/docs/2.0 to: - ^/perl/modperl/docs/tags/2_0_12/src/docs/2.0 + ^/perl/modperl/docs/tags/2_0_13/src/docs/2.0 The complete svn:externals should now look like: - % svn propget svn:externals 2_0_12 + % svn propget svn:externals 2_0_13 Apache-Test ^/perl/Apache-Test/tags/<X> Apache-Reload ^/perl/Apache-Reload/tags/<Y> Apache-SizeLimit ^/perl/Apache-SizeLimit/tags/<Z> - docs ^/perl/modperl/docs/tags/2_0_12/src/docs/2.0 + docs ^/perl/modperl/docs/tags/2_0_13/src/docs/2.0 where <X>, <Y> and <Z> are the tags of the releases of Apache-Test, Apache-Reload and Apache-SizeLimit included in this release of mod_perl. - % svn ci -m "2.0.12 release" + % svn ci -m "2.0.13 release" g. create the final package % make dist @@ -114,13 +114,13 @@ a. sign your local copy of the tarball: - % gpg --detach-sign --armor mod_perl-2.0.12.tar.gz + % gpg --detach-sign --armor mod_perl-2.0.13.tar.gz - % pgps -b --armor mod_perl-2.0.12.tar.gz + % pgps -b --armor mod_perl-2.0.13.tar.gz b. create SHA256 and SHA512 checksums of the tarball: - % sha256sum mod_perl-2.0.12.tar.gz >mod_perl-2.0.12.tar.gz.sha256 - % sha512sum mod_perl-2.0.12.tar.gz >mod_perl-2.0.12.tar.gz.sha512 + % sha256sum mod_perl-2.0.13.tar.gz >mod_perl-2.0.13.tar.gz.sha256 + % sha512sum mod_perl-2.0.13.tar.gz >mod_perl-2.0.13.tar.gz.sha512 5. Release the package and update links @@ -136,12 +136,12 @@ d. ask one of the other developers to double check the signature file and tarball: download both files and verify the signature: - https://www.apache.org/dist/perl/mod_perl-2.0.12.tar.gz.asc - https://www.apache.org/dist/perl/mod_perl-2.0.12.tar.gz + https://www.apache.org/dist/perl/mod_perl-2.0.13.tar.gz.asc + https://www.apache.org/dist/perl/mod_perl-2.0.13.tar.gz - % gpg --verify mod_perl-2.0.12.tar.gz.asc + % gpg --verify mod_perl-2.0.13.tar.gz.asc - % pgpv mod_perl-2.0.12.tar.gz.asc + % pgpv mod_perl-2.0.13.tar.gz.asc e. respond to the automated email that will arrive requesting that release data be filled in at https://reporter.apache.org/addrelease.html?perl @@ -150,7 +150,7 @@ % vi modperl-docs/src/download/index_top.html % vi modperl-docs/doap_Perl.rdf and commit. - % svn ci -m "2.0.12 release" \ + % svn ci -m "2.0.13 release" \ modperl-docs/src/download/index_top.html \ modperl-docs/doap_Perl.rdf @@ -176,7 +176,7 @@ Note, to post to announce@, you must be sending from an apache.org address. - Subject: [ANNOUNCE] mod_perl 2.0.12 + Subject: [ANNOUNCE] mod_perl 2.0.13 include: - link at perl.apache.org: @@ -193,7 +193,7 @@ c. edit ./Changes: - start a new item with incremented version + '-dev' - =item 2.0.13-dev + =item 2.0.14-dev d. add a release entry in STATUS @@ -202,7 +202,7 @@ % perl -pi.bak -e 's/(\d+)([._])(\d+)(\2)(\d+)/join($2, $1, $3, $5+1)/eg' RELEASE f. commit the changed files - % svn ci -m "start 2.0.12-dev cycle" Changes META.yml lib/mod_perl2.pm \ + % svn ci -m "start 2.0.13-dev cycle" Changes META.yml lib/mod_perl2.pm \ STATUS RELEASE 9. Old Versions diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/STATUS new/mod_perl-2.0.13/STATUS --- old/mod_perl-2.0.12/STATUS 2022-01-30 14:02:22.000000000 +0100 +++ new/mod_perl-2.0.13/STATUS 2023-10-21 11:47:13.000000000 +0200 @@ -1,8 +1,9 @@ mod_perl 2.0 STATUS: -*-text-*- - Last modified at [$Date: 2019-10-05 13:03:20 +0100 (Sat, 05 Oct 2019) $] + Last modified at [$Date: 2022-01-30 13:47:35 +0000 (Sun, 30 Jan 2022) $] Release: -------- + 2.000.12 : Released Jan 30, 2022 2.000.11 : Released Oct 05, 2019 2.000.10 : Released Oct 27, 2016 2.000.09 : Released Jun 18, 2015 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/docs/api/Apache2/ServerUtil.pod new/mod_perl-2.0.13/docs/api/Apache2/ServerUtil.pod --- old/mod_perl-2.0.12/docs/api/Apache2/ServerUtil.pod 2022-01-30 14:02:20.000000000 +0100 +++ new/mod_perl-2.0.13/docs/api/Apache2/ServerUtil.pod 2023-10-21 11:47:11.000000000 +0200 @@ -29,7 +29,6 @@ # server build and version info: $when_built = Apache2::ServerUtil::get_server_built(); $description = Apache2::ServerUtil::get_server_description(); - $version = Apache2::ServerUtil::get_server_version(); $banner = Apache2::ServerUtil::get_server_banner(); # ServerRoot value @@ -365,6 +364,8 @@ $version = Apache2::ServerUtil::get_server_version(); +This function is deprecated. Use C<get_server_banner()> instead. + =over 4 =item ret: C<$version> ( string ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/lib/Apache2/Build.pm new/mod_perl-2.0.13/lib/Apache2/Build.pm --- old/mod_perl-2.0.12/lib/Apache2/Build.pm 2022-01-30 14:02:21.000000000 +0100 +++ new/mod_perl-2.0.13/lib/Apache2/Build.pm 2023-10-21 11:47:12.000000000 +0200 @@ -1502,7 +1502,7 @@ }; } else { - my @command = ($self->perl_config('cpp'), '-dM', $header); + my @command = ($self->perl_config('cpp'), '-E', '-dM', $header); open $fh, '-|', @command or do { error "Unable to preprocess $header with @command: $!"; return undef; @@ -1612,7 +1612,7 @@ } #help prevent warnings -my @mm_init_vars = (BASEEXT => ''); +my @mm_init_vars = (BASEEXT => '', NAME => ''); sub make_tools { my ($self, $fh) = @_; @@ -1627,6 +1627,10 @@ # Fake initialize MakeMaker foreach my $m (qw(init_main init_others init_tools)) { $mm->$m() if $mm->can($m); + + # init_main() undefines the BASEEXT member which we initialized + # to a blank string to prevent warnings; reset it now + $mm->{BASEEXT} = '' if not defined $mm->{BASEEXT}; } for (qw(rm_f mv ld ar cp test_f)) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/lib/Apache2/Status.pm new/mod_perl-2.0.13/lib/Apache2/Status.pm --- old/mod_perl-2.0.12/lib/Apache2/Status.pm 2022-01-30 14:02:21.000000000 +0100 +++ new/mod_perl-2.0.13/lib/Apache2/Status.pm 2023-10-21 11:47:12.000000000 +0200 @@ -142,7 +142,7 @@ sub header { my $r = shift; my $start = scalar localtime $^T; - my $srv = Apache2::ServerUtil::get_server_version(); + my $srv = Apache2::ServerUtil::get_server_banner(); $r->content_type("text/html"); my $v = $^V ? sprintf "v%vd", $^V : $]; $r->print(<<"EOF"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/lib/ModPerl/DummyVersions.pm new/mod_perl-2.0.13/lib/ModPerl/DummyVersions.pm --- old/mod_perl-2.0.12/lib/ModPerl/DummyVersions.pm 2022-01-30 14:02:21.000000000 +0100 +++ new/mod_perl-2.0.13/lib/ModPerl/DummyVersions.pm 2023-10-21 11:47:12.000000000 +0200 @@ -77,95 +77,95 @@ $APR::Util::VERSION = 0.009000; package Apache2::Access; -$Apache2::Access::VERSION = 2.000012; +$Apache2::Access::VERSION = 2.000013; package Apache2::CmdParms; -$Apache2::CmdParms::VERSION = 2.000012; +$Apache2::CmdParms::VERSION = 2.000013; package Apache2::Command; -$Apache2::Command::VERSION = 2.000012; +$Apache2::Command::VERSION = 2.000013; package Apache2::Connection; -$Apache2::Connection::VERSION = 2.000012; +$Apache2::Connection::VERSION = 2.000013; package Apache2::ConnectionUtil; -$Apache2::ConnectionUtil::VERSION = 2.000012; +$Apache2::ConnectionUtil::VERSION = 2.000013; package Apache2::Directive; -$Apache2::Directive::VERSION = 2.000012; +$Apache2::Directive::VERSION = 2.000013; package Apache2::Filter; -$Apache2::Filter::VERSION = 2.000012; +$Apache2::Filter::VERSION = 2.000013; package Apache2::FilterRec; -$Apache2::FilterRec::VERSION = 2.000012; +$Apache2::FilterRec::VERSION = 2.000013; package Apache2::HookRun; -$Apache2::HookRun::VERSION = 2.000012; +$Apache2::HookRun::VERSION = 2.000013; package Apache2::Log; -$Apache2::Log::VERSION = 2.000012; +$Apache2::Log::VERSION = 2.000013; package Apache2::MPM; -$Apache2::MPM::VERSION = 2.000012; +$Apache2::MPM::VERSION = 2.000013; package Apache2::Module; -$Apache2::Module::VERSION = 2.000012; +$Apache2::Module::VERSION = 2.000013; package Apache2::Process; -$Apache2::Process::VERSION = 2.000012; +$Apache2::Process::VERSION = 2.000013; package Apache2::Provider; -$Apache2::Provider::VERSION = 2.000012; +$Apache2::Provider::VERSION = 2.000013; package Apache2::RequestIO; -$Apache2::RequestIO::VERSION = 2.000012; +$Apache2::RequestIO::VERSION = 2.000013; package Apache2::RequestRec; -$Apache2::RequestRec::VERSION = 2.000012; +$Apache2::RequestRec::VERSION = 2.000013; package Apache2::RequestUtil; -$Apache2::RequestUtil::VERSION = 2.000012; +$Apache2::RequestUtil::VERSION = 2.000013; package Apache2::Response; -$Apache2::Response::VERSION = 2.000012; +$Apache2::Response::VERSION = 2.000013; package Apache2::ServerRec; -$Apache2::ServerRec::VERSION = 2.000012; +$Apache2::ServerRec::VERSION = 2.000013; package Apache2::ServerUtil; -$Apache2::ServerUtil::VERSION = 2.000012; +$Apache2::ServerUtil::VERSION = 2.000013; package Apache2::SubProcess; -$Apache2::SubProcess::VERSION = 2.000012; +$Apache2::SubProcess::VERSION = 2.000013; package Apache2::SubRequest; -$Apache2::SubRequest::VERSION = 2.000012; +$Apache2::SubRequest::VERSION = 2.000013; package Apache2::URI; -$Apache2::URI::VERSION = 2.000012; +$Apache2::URI::VERSION = 2.000013; package Apache2::Util; -$Apache2::Util::VERSION = 2.000012; +$Apache2::Util::VERSION = 2.000013; package ModPerl::Global; -$ModPerl::Global::VERSION = 2.000012; +$ModPerl::Global::VERSION = 2.000013; package ModPerl::InterpPool; -$ModPerl::InterpPool::VERSION = 2.000012; +$ModPerl::InterpPool::VERSION = 2.000013; package ModPerl::Interpreter; -$ModPerl::Interpreter::VERSION = 2.000012; +$ModPerl::Interpreter::VERSION = 2.000013; package ModPerl::MethodLookup; -$ModPerl::MethodLookup::VERSION = 2.000012; +$ModPerl::MethodLookup::VERSION = 2.000013; package ModPerl::TiPool; -$ModPerl::TiPool::VERSION = 2.000012; +$ModPerl::TiPool::VERSION = 2.000013; package ModPerl::TiPoolConfig; -$ModPerl::TiPoolConfig::VERSION = 2.000012; +$ModPerl::TiPoolConfig::VERSION = 2.000013; package ModPerl::Util; -$ModPerl::Util::VERSION = 2.000012; +$ModPerl::Util::VERSION = 2.000013; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/lib/mod_perl2.pm new/mod_perl-2.0.13/lib/mod_perl2.pm --- old/mod_perl-2.0.12/lib/mod_perl2.pm 2022-01-30 14:02:21.000000000 +0100 +++ new/mod_perl-2.0.13/lib/mod_perl2.pm 2023-10-21 11:47:12.000000000 +0200 @@ -20,7 +20,7 @@ use strict; BEGIN { - our $VERSION = "2.000012"; + our $VERSION = "2.000013"; our $VERSION_TRIPLET; if ($VERSION =~ /(\d+)\.(\d\d\d)(\d+)/) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/mod_perl.spec new/mod_perl-2.0.13/mod_perl.spec --- old/mod_perl-2.0.12/mod_perl.spec 2022-01-30 14:02:21.000000000 +0100 +++ new/mod_perl-2.0.13/mod_perl.spec 2023-10-21 11:47:13.000000000 +0200 @@ -1,7 +1,7 @@ -%define _version 2.0.12 +%define _version 2.0.13 %define _release -%define _source https://apache.org/dist/perl/mod_perl-2.0.12-rc1.tar.gz -%define _dirname mod_perl-2.0.12-rc1 +%define _source https://apache.org/dist/perl/mod_perl-2.0.13-rc1.tar.gz +%define _dirname mod_perl-2.0.13-rc1 %define _httpd_min_ver 2.0.47 %define _perl_min_ver 5.6.1 Name: mod_perl diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mod_perl-2.0.12/src/modules/perl/modperl_io.c new/mod_perl-2.0.13/src/modules/perl/modperl_io.c --- old/mod_perl-2.0.12/src/modules/perl/modperl_io.c 2022-01-30 14:02:22.000000000 +0100 +++ new/mod_perl-2.0.13/src/modules/perl/modperl_io.c 2023-10-21 11:47:13.000000000 +0200 @@ -116,8 +116,8 @@ save_gp(handle, 1); sv_setref_pv(sv, "Apache2::RequestRec", (void*)r); - status = do_open9(handle, mode == O_RDONLY ? "<:Apache2" : ">:Apache2", - 9, FALSE, mode, 0, (PerlIO *)NULL, sv, 1); + status = do_openn(handle, mode == O_RDONLY ? "<:Apache2" : ">:Apache2", + 9, FALSE, mode, 0, (PerlIO *)NULL, &sv, 1); if (status == 0) { Perl_croak(aTHX_ "Failed to open STD%s: %" SVf, mode == O_RDONLY ? "IN" : "OUT", get_sv("!", TRUE));