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 <[email protected]>
+
+- 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 <[email protected]>, CPAN RT#34316; Steve Hay]
+
+Fix spelling error.
+[<[email protected]>, 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 <[email protected]>, CPAN RT#93757]
+
+Fix unshared memory values when using /proc/self/statm.
+[Zefram <[email protected]>, CPAN RT#73752]
+
+Fix unnecessary FAIL reports on CPAN Testers by checking for mod_perl or
+mod_perl2.
+[Andreas Koenig <[email protected]>; 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Å <[email protected]]
+
+Avoid generating APR precompiled headers. [Sam James <[email protected]>]
+
+Fix build for perl >= 5.37.1. [Jitka Plesnikova <[email protected]>]
+
=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));