-
Notifications
You must be signed in to change notification settings - Fork 18
/
Changes
3009 lines (2115 loc) · 111 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
=encoding utf8
=head1 NAME
Changes - Apache mod_perl changes logfile
=head1 CHANGES
all changes without author attribution are by Doug MacEachern
Also refer to the Apache::Test changes log file, at Apache-Test/Changes
=over 3
=item 2.0.14-dev
=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]
Fix detection of APR's threading support on RHEL 8. [Petr Písař
Fix build for perl >= 5.33.7. [Leon Timmermans <[email protected]>]
Fix SIGSEGV crash due to wrong use of perl_parse(). [Charles Pigott
Improve installation instructions for AIX. [Rainer Tammer
=item 2.0.11 October 5, 2019
Fix t/modules/apache_resource.t failures [Steve Hay]
Fix [CVE-2011-2767] Arbitrary Perl code execution in the context of the user
account via a user-owned .htaccess. Patch from bugs.debian.org #644169. [Jan
Ingvoldstad <[email protected]>]
Fix potential test suite hangs due to pipelined response deadlocks. Patch
from rt.cpan.org #82409. [Zefram <[email protected]>]
Fix t/compat/request.t failures [Steve Hay]
Fix use-after-free segfault in ap_server_config_defines seen on start-up on
OpenBSD. [Found/fixed by Sam Vaughan/Joe Orton]
Fix build with Perls earlier than 5.13.6. [Rainer Jung
Fix filter/in_bbs_inject_header.t test failure with Apache 2.4.25+. [Stefan
Fritsch <[email protected]>]
Fix apache/read.t test failure with Apache 2.4.25+. [Niko Tyni
=item 2.0.10 October 27, 2016
Declare MP_vtbl_env and MP_vtbl_envelem as 'extern' to fix linker errors on
OSX/Darwin. [Michael Schout <[email protected]>]
Automatically select the appropriate c89 option when modperl is being
built with either gcc 5 or clang. [Klaus S. Madsen <[email protected]>]
Fix non-threaded Perl 5.22.x build and tests. [Klaus S. Madsen
Add support for Perl 5.22.x. [Niko Tyni <[email protected]>, Steve Hay]
=item 2.0.9 June 18, 2015
Add note to README about MP_INLINE problem when building with GCC 5.
[Niko Tyni <[email protected]>]
Fix t/api/aplog.t for apr-1.5.2. [Steve Hay]
Note that Perl 5.22.x is currently not supported. This is logged as
CPAN RT#101962 and will hopefully be addressed in 2.0.10. [Steve Hay]
Fix unthreaded build, which was broken in 2.0.9-rc2. [Steve Hay]
Remove PerlInterpScope. This has not been working properly with threaded
MPMs with httpd-2.4.x and the use-case of this directive was questionable.
[Jan Kaluza]
Allow running the test suite with httpd-2.4.x when mod_access_compat is not
loaded. [Steve Hay]
Add support for Apache httpd-2.4.x. [Torsten Foertsch, Jan Kaluza,
Steve Hay, Gozer]
Don't call modperl_threaded_mpm() et al. from XS code. Fixes Debian Bug
#765174. [Niko Tyni <[email protected]>]
Make sure modperl_interp_select uses r->server rather than the passed s
parameter to find the interpreter pool to pull an interpreter from. This
fixes an issue with vhosts with a separate interpreter pool and runtime
dir-config merges that used to pull the interpreter from the wrong pool.
[Torsten Foertsch]
PerlInterpScope is now more advisory. Using $(c|r)->pnotes will bind
the current interpreter to that object for it's lifetime.
$(c|r)->pnotes_kill() can be used to prematurely drop pnotes and
remove this binding. [Torsten Foertsch]
Now correctly invokes PerlCleanupHandlers, even if they are the only
handler type configured for that request [Torsten Foertsch]
For threaded MPMs, change interpreter managment to a new, reference-counted
allocation model. [Torsten Foertsch]
Expose modperl_interp_pool_t via ModPerl::InterpPool, modperl_tipool_t
via ModPerl::TiPool and modperl_tipool_config_t via ModPerl::TiPoolConfig
[Torsten Foertsch]
Expose modperl_interp_t via ModPerl::Interpreter [Torsten Foertsch]
Fix t/compat/apache_file.t on Windows. Apache::File->tmpfile() wants TMPDIR
or TEMP from the environment, or else defaults to /tmp. The latter is no
good on Windows, so make sure the environment variables are passed through.
(TEMP should be set to something suitable on Windows.) [Steve Hay]
Fix t/api/err_headers_out.t with HTTP::Headers > 6.00. [Rolando
Fix the build with VC++ and dmake (rather than nmake) on Windows. The
Makefile generated by Apache2::Build uses shell commands for the manifest
file, but neglected to tell dmake to use the shell. [Steve Hay]
Don't write an 'rpm' target into the Makefile on Windows. It isn't relevant
on Windows, and the (hard-coded, not MakeMaker-generated) recipe group has
syntax which dmake doesn't understand. [Steve Hay]
=item 2.0.8 April 17, 2013
Perl 5.16.3's fix for a rehash-based DoS makes it more difficult to invoke
the workaround for the old hash collision attack, which breaks mod_perl's
t/perl/hash_attack.t. Patch from rt.cpan.org #83916 improves the fix
previously applied as revision 1455340. [Zefram]
On Perl 5.17.6 and above, hash seeding has changed, and HvREHASH has
disappeared. Patch to update mod_perl accordingly from rt.cpan.org #83921.
[Zefram]
Restore build with Perl 5.8.1, 5.8.2 etc: take care to use
$Config{useithreads} rather than $Config{usethreads}, and supply definitions
of Newx and Newxz as necessary. [Steve Hay]
On Perl 5.17.9, t/apache/read2.t fails because an "uninitialized value"
warning is generated for the buffer being autovivified. This is because
the sv_setpvn() that's meant to vivify the buffer doesn't perform set
magic; the warning is generated by the immediately following SvPV_force().
Patch to fix this from rt.cpan.org #83922. [Zefram]
Fix t/perl/hash_attack.t to work with Perl 5.14.4, 5.16.3 etc, which
contain a fix for CVE-2013-1667 (memory exhaustion with arbitrary hash
keys). This resolves rt.perl.org #116863, from where the patch was taken.
[Hugo van der Sanden]
use APR::Finfo instead of Perl's stat() in ModPerl::RegistryCooker to
generate HTTP code 404 even if the requested filename contains newlines
[Torsten]
Remove all uses of deprecated core perl symbols. [Steve Hay]
Add branch release tag to 'make tag' target. [Phred]
=item 2.0.7 June 5, 2012
Fix breakage caused by removal of PL_uid et al from perl 5.16.0. Patch from
rt.cpan.org #77129. [Zefram]
=item 2.0.6 April 24, 2012
Preserve 5.8 compatibility surrounding use of MUTABLE_CV [Adam Prime]
Move code after declarations to keep MSVC++ compiler happy. [Steve Hay]
Adopt modperl_pcw.c changes from httpd24 branch. [Torsten Foertsch]
Pool cleanup functions must not longjmp. Catch these exceptions and turn
them into warnings. [Torsten Foertsch]
Fix a race condition in our tipool management.
See http://www.gossamer-threads.com/lists/modperl/dev/104026
Patch submitted by: SalusaSecondus <[email protected]>
Reviewed by: Torsten Foertsch
Ensure that MP_APXS is set when building on Win32 with MP_AP_PREFIX,
otherwise the bundled Reload and SizeLimit builds will fail to find a
properly configured Test environment.
[Steve Hay]
Fix a few REFCNT bugs.
Patch submitted by: Niko Tyni <[email protected]>
Reviewed by: Torsten Foertsch
Correct the initialization of the build config in ModPerl::MM. The global
variable was only being set once on loading the module, which was before
Apache2::BuildConfig.pm had been written, leading to cwd and MP_LIBNAME
being unset when writing the Reload and SizeLimit makefiles.
[Steve Hay]
Discover apr-2-config from Apache 2.4 onwards. [Gozer]
Apache 2.4 and onwards doesn't require linking the MPM module directly in
the httpd binary anymore. APXS lost the MPM_NAME query, so we can't assume
a given MPM anymore. Introduce a fake MPM 'dynamic' to represent this.
[Torsten Foertsch, Gozer]
Perl 5.14 brought a few changes in Perl_sv_dup() that made a threaded apache
segfault while cloning interpreters.
[Torsten Foertsch]
PerlIOApache_flush() and mpxs_Apache2__RequestRec_rflush() now no longer throw
exceptions when modperl_wbucket_flush() fails if the failure was just a reset
connection or an aborted connection. The failure is simply logged to the error
log instead. This should fix cases of httpd.exe crashing when users press the
Stop button in their web browsers.
[Steve Hay]
Fixed a few issues that came up with LWP 6.00:
- t/response/TestAPI/request_rec.pm assumes HTTP/1.0 but LWP 6 uses 1.1
- t/api/err_headers_out.t fails due to a bug somewhere in LWP 6
- t/filter/TestFilter/out_str_reverse.pm sends the wrong content-length header
[Torsten Foertsch]
Bugfix: Apache2::ServerUtil::get_server{description,banner,version} cannot
be declared as perl constants or they won't reflect added version components
if Apache2::ServerUtil is loaded before the PostConfig phase. Now, they
are ordinary perl functions. [Torsten Foertsch]
Check for the right ExtUtils::Embed version during build [Torsten Foertsch]
Take a lesson from rt.cpan.org #66085 and pass LD_LIBRARY_PATH if mod_env
is present. Should prevent test failures on some platforms.
[Fred Moyer]
=item 2.0.5 February 7, 2011
The mod_perl PMC dedicates this release of mod_perl to Randy Kobes, who
passed away in September 2010. Randy was a member of the mod_perl project
management committee and a co-author of the mod_perl Developer's Cookbook.
His work helped many Windows mod_perl users. His work with ppm files, and
Win32 perl users will be sorely missed. He was kind, bright, and always
willing to lend a hand on the mod_perl user's list.
Prepare modperl for the upcoming perl 5.14 [Torsten Foertsch]
Add lib/ModPerl/MethodLookup.pm to MANIFEST via lib/ModPerl/Manifest.pm
RT #48103 reported by [email protected]
[Fred Moyer]
PerlIOApache_write() now throws an APR::Error object, rather than just a string
error, if modperl_wbucket_write() fails.
[Steve Hay]
Authentication tests fail with LWP 5.815 and later
[Doug Schrag]
Concise test won't perform unless StatusTerse is set to ON
[Doug Schrag]
Look for a usable apxs in $ENV{PATH} if all other options fail, then prompt the user for one.
[Phred]
Work around bootstrap warnings when Apache2::BuildConfig has not been created yet.
[Phred]
Remove Apache::test compatibility (part of mod_perl 1.2.7), that code causes build issues and is 4 versions out of date.
[Phred]
Make sure perl is built either with multiplicity and ithreads or without
both [Theory, Torsten]
Support for "install_vendor" and "install_site" make targets [Torsten]
Run tests on bundled pure perl Apache::* modules [Gozer, Phred]
Implement a mini-preprocess language for map-files in xs/maps.
[Torsten Foertsch]
Implement APR::Socket::fileno [Torsten Foertsch]
Export PROXYREQ_RESPONSE, a missing PROXYREQ_* constant [Gozer]
Make sure standard file descriptors are preserved by the perl-script
handler [Torsten Foertsch]
Fix the filter init handler attribute check in
modperl_filter_resolve_init_handler() [Torsten Foertsch]
Make sure buffer is a valid SV in modperl_filter_read() [Torsten Foertsch]
Move modperl_response_finish() out of modperl_response_handler_run in
mod_perl.c [Torsten Foertsch]
"MODPERL_INC= now correctly supported as an argument to Makefile.PL"
[Torsten Foertsch]
Fix an XSS issue in Apache2::Status reported by Richard J. Brain
<[email protected]>. [Torsten Foertsch]
Add NOTICE file to the distribution. [Joe Schaefer]
Make sure Apache2::RequestIO::read doesn't clear the buffer on end of
file and handle negative offsets and offsets that are larger than
the current string length. [Torsten Foertsch]
Fix a problem that could make APR::XSLoader and Apache2::XSLoader
load the wrong shared library. [Torsten Foertsch]
Fix compilation when using a non-threaded APR.
[Gozer, Philip M. Gollucci]
Make sure mod_perl's own ChildInitHandlers are run before user
supplied ones. This fixes the incorrectly reported value of $$
at ChildInit time [Gozer]
=item 2.0.4 April 16, 2008
Fix $r->location corruption under certain conditions
[Gozer]
Fix a crash when spawning Perl threads under Perl 5.10
[Gozer]
Fix erratic behaviour when filters were used with Perl 5.10
[Gozer]
Fix problems with redefinitions of perl_free as free and perl_malloc
as malloc on Win32, as described at
http://marc.info/?l=apache-modperl&m=119896407510526&w=2
[Tom Donovan]
Fix a crash when running a sub-request from within a filter where
mod_perl was not the content handler. [Gozer]
Refactor tests to use keepalives instead of same_interp [Gozer, Phred]
Apache2::Reload has been moved to an externally maintained
CPAN distribution [Fred Moyer <[email protected]>]
PerlCleanupHandler are now registered with a subpool of $r->pool,
instead of $r->pool itself, ensuring they run _before_ any other
$r->pool cleanups [Torsten Foertsch]
Fix a bug that would prevent pnotes from being cleaned up properly
at the end of the request [Torsten Foertsch]
On Win32, embed the manifest file, if present, in mod_perl.so,
so as to work with VC 8 [Steve Hay, Randy Kobes]
Expose apr_thread_rwlock_t with the APR::ThreadRWLock module
[Torsten Foertsch]
Don't waste an extra interpreter anymore under threaded MPMs when using a
modperl handler [Torsten Foertsch]
Fix a bug that could cause a crash when using $r->push_handlers() multiple
times for a phase that has no configured handlers [Torsten Foertsch]
Catch up with some httpd API changes
2.2.4:
The full server version information is now included in the error log at
startup as well as server status reports, irrespective of the setting
of the ServerTokens directive. ap_get_server_version() is now
deprecated, and is replaced by ap_get_server_banner() and
ap_get_server_description(). [Jeff Trawick]
2.3.0:
ap_get_server_version() has been removed. Third-party modules must
now use ap_get_server_banner() or ap_get_server_description().
[Gozer]
fixed Apache2::compat Apache2::ServerUtil::server_root() resolution
issues [Joshua Hoblitt]
*) SECURITY: CVE-2007-1349 (cve.mitre.org)
fix unescaped variable interprolation in regular expression
[Randal L. Schwartz <[email protected]>, Fred Moyer <[email protected]>]
Make $r->the_request() writeable
[Fred Moyer <[email protected]>]
fix ModPerl::RegistryCooker::read_script to handle all possible
errors, previously there was a case where Apache2::Const::OK was
returned on an error. [Eivind Eklund <[email protected]>]
a minor compilation warning resolved in modperl_handler_new_from_sv
[Stas]
a minor compilation warning resolved in modperl_gtop_size_string
[Stas]
Prevent direct use of _deprecated_ Apache2::ReadConfig in
<Perl> sections with httpd Alias directives from
incorrectly generating
'The Alias directive in xxxxx at line y will probably never match'
messages.
[Philip M. Gollucci <[email protected]>]
Prevent Apache2::PerSections::symdump() from returning invalid
httpd.conf snippets like 'Alias undef'
[Philip M. Gollucci <[email protected]>]
Require B-Size 0.9 for Apache2::Status which fixes
Can't call method "script_name" on an undefined value
[Philip M. Gollucci <[email protected]>]
-march=pentium4 or anything with an = in it in CCFLAGS or @ARGV
that gets passed to xs/APR/APR/Makefile.PL broke the @ARGV
parsing. I.E. FreeBSD port builds when users had CPUTYPE
set in /etc/make.conf.
[Philip M. Gollucci <[email protected]>]
Fixes to get bleed-ithread (5.9.5+) to comile again.
[Philip M. Gollucci <[email protected]>]
=item 2.0.3 November 28, 2006
Prevent things in %INC that are not stat() able
from breaking Apache2::Status 'Loaded Modules'
under fatal warnings.
[Philip M. Gollucci <[email protected]>]
When using MP_AP_PREFIX on WIN32 make sure that its
a valid directory.
[Nikolay Ananiev <[email protected]>]
Fix bug concerning 'error-notes' having no value on
errordocument redirect.
[Guy Albertelli II <[email protected]>]
Multi-line $PerlConfig is now working [Gozer]
PerlOptions None was previously incorrectly reported as invalid
inside <VirtualHost> or <Directory> blocks.
[Philip M. Gollucci]
Require B::Size 0.07 and B::TerseSize 0.07 for Apache2::Status
[Philip M. Gollucci]
Apache2::Status was expecting B::TerseSize to return
an op count for things that it didn't causing
requests like http://localhost/perl-status/main?noh_b_package_size
to cause 405s
[Philip M. Gollucci]
Updates for Win32 to allow building and testing on Apache/2.2:
- use httpd.exe as the Apache binary name when installing apxs
- use new apr library names (libapr-1.lib and libaprutil-1.lib)
[Randy Kobes]
Make sure that additional library paths are included in the build flags
so that mod_perl will use the same versions of libraries that APR does.
[Mike Smith <[email protected]>]
Added $r->connection->pnotes, identical to $r->pnotes, but
for the entire lifetime of the connection
[Geoffrey Young, Gozer]
Fixed problems with add_config() and thread-safety: [Gozer]
- $s->add_config is not allowed anymore after server startup
- $r->add_config can only affect configuration for the current
request, just like .htaccess files do
Make sure that LIBS and other MakeMaker command line flags are not
ignored by the top level Makefile.PL and xs/APR/APR/Makefile.PL [Stas]
Corrected a typo that would cause the corruption of $), the
effective group id as Perl sees it [Gozer]
Added support for httpd-2.2's new override_opts in Apache2::Access.
Calls to add_config() now accept an override_opts value as the 4th
argument. [Torsten Foertsch <[email protected]>, Gozer]
Fix 'PerlSwitches +inherit' that got broken somewhere along
the way to 2.0. You can also use 'PerlOptions +InheritSwitches'
for the same result. [Gozer]
Add perl API corresponding to User and Group directives in httpd.conf:
Apache2::ServerUtil->user_id and Apache2::ServerUtil->group_id
[Stas]
Apache2::Reload now first unloads all modified modules before
trying to reload them. This way, inter-module dependencies
are more likely to be correctly satisfied when reloaded
[Javier Uruen Val <[email protected]>, Gozer]
$r->add_config() can now take an optionnal 3rd argument that
specifies what pseudo <Location $path> the configuration is
evaluated into [Torsten Foertsch <[email protected]>]
remove -DAP_HAVE_DESIGNATED_INITIALIZER and -DAP_DEBUG from
MP_MAINTAINER mode to avoid collisions [Joe Orton]
Back out r280262 which was causing Apache2::Reload to misbehave.
[JT Smith <[email protected]>]
Perl_do_open/close fixes to make mod_perl 2.0 compile with
blead-perl@25889+ (5.9.3+) [Stas]
Added Apache2::PerlSections->server, returning the server
into which the <Perl> section is defined [Gozer]
Require B::Size and B::TerseSize v0.06 for Apache2::Status
options StatusTerse and StatusTerseSize which has now been
updated to support the new mod_perl2 api post RC5.
[Philip M. Gollucci]
When using Apache2::PerlSections->dump, the configuration
would print out in the correct order, but when the configuration was
passed off to Apache the ordering was lost.
[Scott Wessels <[email protected]>]
=item 2.0.2 - October 20, 2005
add :proxy import tag to Apache2::Const which exposes new
constants PROXYREQ_NONE, PROXYREQ_PROXY, and PROXYREQ_REVERSE
[Geoffrey Young]
$0 Fixes : [Gozer]
- Setting $0 works on Linux again
- HP-UX and *BSDes show the correct process name instead of '-e'
Fix a critical but trivial bug that would cause MP_MAINTAINER=1
or MP_TRACE=1 builds to fail if not building against a threaded APR.
Functions such as apr_os_thread_current() would not be linked in,
but were expected to be.
[Philip M. Gollucci]
Add the output of ldd(unix/cygwin) and otool -L (darwin)
for httpd to the mp2bug report script.
[Philip M. Gollucci]
Prevent tools such as Apache2::Status's Loaded Modules screen
from displaying erroneous information about mod_perl.pm being loaded.
[Stas, Philip M. Gollucci]
Correctly set the version of ModPerl::MethodLookup, previously,
it was not set because of the way it was Generating via ModPerl::WrapXS.
[Philip M. Gollucci]
Improve the detection of whether or not we are in an mp2 build tree.
This allows usage of ExtUtils::MakeMaker options such as PREFIX to
not break the probe of mp2 build trees.
[Stas, Philip M. Gollucci]
Add support for the newer Smaps (/proc/self/statm) on Linux
systems that support it (i.e. linux-2.6.13-rc4-mm1)
to accurately count the amount of shared memory.
[Torsten Foertsch <torsten.foertsch gmx.net>]
On cygwin some dlls might happen to be with identical base addresses
and if you try to load both of them you'll get an error and you'll
have to use the rebase utility to fix them. this fix should prevent
this. [Nikolay Ananiev <[email protected]>]
Fix an undefined warning in DSO builds when not using MP_APXS.
[Nikolay Ananiev <[email protected]>]
When running Makefile.PL with the MP_MAINTAINER=1 option
add -Wdeclaration-after-statement if we are using gcc
version 3.3.2 or higher and its not already part of the ccopts.
[Philip M. Gollucci, Gozer]
Several fixes to Apache2::Status
[Philip M. Gollucci]
When using Apache2::Reload and ReloadDebug is set to 'On',
sort the output alphabetically [Philip M. Gollucci]
croak in case a filter returns DECLINED after calling $f->read (as it
is not supposed to happen) [Stas]
another round of cygwin fixes [Nikolay Ananiev <[email protected]>]
Multiple fixes to make mod_perl 2.0 work with blead-perl (5.9.3+)
[Stas]
t/modules/reload.t would fail if run more than 3 times, breaking
smokes [Gozer]
filter flushing now doesn't croak on connection reset
(ECONNRESET/ECONNABORTED), but just logs the event on the 'info'
level. [Stas]
RPM Friendly builds : [Gozer]
- make dist tarballs can now be built directly into RPMs with rpmbuild
- Added a new target 'make rpm' to directly build rpms from a checkout
=item 2.0.1 - June 17, 2005
B::Terse has problems with XS code, so adjust Apache::Status to eval
{} the code doing Syntax Tree Dump: syntax and execution order options
[Stas]
Fix a broken regexp in Apache2::Build::dir() on win32 that would
incorrectly attempt to fully-qualify paths like c:/some/path
[Nikolay Ananiev <[email protected]>]
Fix the "No library found" warnings when building on win32 without
apxs and MP_AP_PREFIX [Nikolay Ananiev <[email protected]>]
The pure-perl ModPerl::Util::unload_package implementation was
accidently deleting sub-stashes [Gozer]
If running Makefile.PL unnatended (STDIN isn't a terminal or
MP_PROMPT_DEFAULT=1), break out of potentially infinite prompt
loops [Gozer]
fix ModPerl::TestReport used by t/REPORT and mp2bug to use
ExtUtils::MakeMaker's MM->parse_version to get the interesting
packages version number, w/o trying to load them (which may fail if
the environment is not right) [Stas]
fix a bug in ModPerl::RegistryCooker: now stripping __(END|DATA)__
only at the beginning of the line [Stas]
APR::Base64 : [Torsten Foertsch <[email protected]>]
- fix encode_len() to return the length without accounting for the
terminating '\0' as the C API does.
- fix encode() to create the string of the correct length (previously
was creating one too many)
in mod_perl callbacks merge error-notes entries rather than store just
the newest error [Mark <[email protected]>]
Expose Apache2::Const::EXEC_ON_READ (added to the :override group)
[Stas]
Fix a bug in custom directive implementation, where the code called
from modperl_module_config_merge() was setting the global context
after selecting the new interpreter which was leading to a segfault in
any handler called thereafter, whose context was different
beforehand. [Stas]
=item 2.0.0 - May 20, 2005
fix global anon_cnt double-initialization bug that was causing
startup segfaults on OSX. [Gozer]
fix the ap_install target in the top-level Makefile (used for static
build) [Stas]
Reintroduce a pure-Perl version of ModPerl::Util::unload_package()
The problematic XS version is now called unload_package_xs() and
not used by default [Gozer]
More APR::Status wrappers: [Stas, Randy Kobes]
- is_EOF
- is_ECONNABORTED
- is_ECONNRESET
- is_TIMEUP
make sure that the build picks up the include directories based on the
apxs queries and only search the httpd source if $self->{MP_AP_PREFIX}
was set. Earlier it was always picking the headers from the httpd
source if it was available, which was resulting in the wrong headers
if the installed httpd was different than the source that was found
[Stas]
introduce ModPerl::RegistryPrefork and ModPerl::PerlRunPrefork, which
behave the same as ModPerl::Registry and ModPerl::PerlRun,
respectively, but chdir to the script's directory like mod_cgi
does. These two new handlers will refuse to load under threaded MPMs
where chdir can't be used as it will affect all running threads [Stas]
ModPerl::RegistryCooker::chdir_file_normal() now chdirs to the current
script's directory or the specified directory as an argument, as it
was planned in first place. Therefore switch ModPerl::Registry and
ModPerl::PerlRun to us NOP for this method call. If chdir_file is
mapped to chdir_file_normal(), then run() and
convert_script_to_compiled_handler() now call chdir to the script's
directory and at before returning go back to the server root. [Stas]
prevent undef warnings in catfile() calls in Apache2::Build when
called from the ModPerl-Registry tree [Stas]
fix modperl_brigade_dump to use apr_file_printf() instead of
fprintf(), which doesn't work everywhere [Stas]
Fix a warning triggered by `ln` on Cygwin, when running perl
Makefile.PL for a second time without previously running make
clean. [Nikolay Ananiev <[email protected]>]
When compiling a static mod_perl and
MP_AP_CONFIGURE="--with-apr=/some/path" argument is given, Apache will
use the apr-config at the given path, but mod_perl was using the
default at "srclib/apr/.libs". Fix that [Nikolay Ananiev <[email protected]>]
Show MP_APU_CONFIG as an argument to Makefile.PL in the Usage
menu. [Nikolay Ananiev <[email protected]>]
Makefile.PL: fix the pre-rename mp2 install diagnostics code, to use
the mp version of 1.999xx and not 1.999_xx, as the latter is
unsuitable for numerical comparison, also fix the name of the reported
conflicting directory [Stas].
add APR::Status::is_(EACCES|ENOENT), and use in ModPerl::RegistryCooker
to return, as appropriate, Apache2::Const::(FORBIDDEN|NOT_FOUND),
based on $@. Also remove a check in modperl_slurp_filename
of src/modules/perl/modperl_util.c to enable $@ to be set when
opening or reading a file fails. This fixes a bug on Win32, revealed
in 404.t and redirect.t of the ModPerl-Registry tests, as reported
by Steve Hay and Markus Wichitill [Stas, Randy Kobes]
link Apache2::* and ModPerl::* to mod_perl.a and DynaLoader.a, but
-lmod_perl and -lDynaLoader don't work, and we can't supply the full
paths, because MakeMaker doesn't allow this. I workaround this by
making a symlink to mod_perl.a (called libmod_perl.a) and copy
DynaLoader.a to libDynaLoader.a (I don't create a symlink, because,
when running make clean, the real DynaLoader.a may get deleted). The
APR::* extensions are not affected, because in both cases we link them
against aprext. Also other small fixes are added. [Nikolay Ananiev
=item 1.999_23 - May 3, 2005
fix Apache2::Build::dynamic_link_MSWin32 to generate a new line after
dynamic_link code in Makefile [Nikolay Ananiev <[email protected]>]
fix a warning in Apache2::Build::build_config() when building
with MP_STATIC_EXTS=1 [Nikolay Ananiev <[email protected]>]
improving DSO support on cygwin. The problem with cygwin is that it
behaves like windows (it's a posix layer over windows after
all). That's why we need to supply all symbols during linking time
just like on win32, by adding -lapr-0 -laprutil-0 and -lhttpd. On
windows, Apache supplies all the three libraries and it's easy to
link, but on cygwin apache doesn't play nice and doesn't supply
libhttpd. This change adds libapr and libaprutil. [Nikolay Ananiev
improve the diagnostics when detecting mp2 < 1.999022, tell the user
which files and/or dirs need to be removed [Stas]
restore the DESTDIR support partially nuked by the apache2 rename
branch [Torsten Förtsch <torsten.foertsch gmx.net>]
add APR::Status to provide functions corresponding to the
APR_STATUS_IS_* macros of apr_errno.h, especially those composites
like APR_STATUS_IS_EAGAIN(s) which are satisfied by more than one
specific error condition. Presently only APR_STATUS_IS_EAGAIN is
provided [Randy Kobes]
fix the generation of the manpages for .pm files from sub-projects
like ModPerl-Registry (previously was creating manpage files like
.::ModPerl::PerlRun.3) [Stas]
fix the pod2man'ification part of 'make install' (using POD2MAN_EXE
instead of POD2MAN Makefile macro) [Stas]
=item 1.999_22 - April 14, 2005
******************** IMPORTANT ********************
this version of mod_perl is completely incompatible
with prior versions of mod_perl, both 1.XX and
1.99_XX. Please read the below changes carefully.
***************************************************
remove MP_INST_APACHE2 installation option and Apache2.pm - all
mod_perl related files will now be installed so they are visible
via standard @INC. also, refuse to install over mod_perl 2 versions
less than 1.999_22. [Geoffrey Young]
s/Apache::/Apache2::/g and s/mod_perl/mod_perl2/g in all module
APIs. so, Apache::RequestRec is now Apache2::RequestRec,
Apache::compat is now Apache2::compat, and so on. [joes]
move all Apache:: constants to Apache2::Const and all APR:: constants
to APR::Const. for example, Apache:OK is now Apache2::Const::OK and
APR::SUCCESS is now APR::Const::SUCCESS. [Geoffrey Young]
add $ENV{MOD_PERL_API_VERSION} as something that clearly distinguishes
which mod_perl version is being used at request time. [Geoffrey Young]
rename Apache->request() to Apache2::RequestUtil->request(), and
Apache->server() to Apache2::ServerUtil->server()
[Geoffrey Young]
fix Apache2::Status which was bailing out on trying to load modules
with dev versions like 2.121_02 [Stas]
When parsing Makefile.PL MP_* options, handle correctly the MP_FOO=0
entries [Philip M. Gollucci <[email protected]>]
init the anonsub hash for base perl and each vhost +Parent (previously
was init'ed only for the base perl) [Stas]
fix a bug when a non-threaded perl is used and anonymous sub is pushed
at the server startup (the CV wasn't surviving) [Stas]
Make sure that CPAN shell doesn't triple over usage of
$ExtUtils::MakeMaker::VERSION [Randy Kobes]
Apache2::RequestRec->new now sets $r->request_time [Stas]
remove CGI.pm and Apache::Request dependencies from Apache2::Status
since they weren't used at all [Geoffrey Young]
Fixes for Apache2::Reload's touchfile feature (return Apache2::Const::OK
instead of 1) [Chris Warren <[email protected]>]
cygwin fixes: [Nikolay Ananiev <[email protected]>]
- doesn't like XS wrapper starting with 'static'
- need to compile everything with -DCYGWIN
ModPerl::RegistryCooker API change: s/rewrite_shebang/shebang_to_perl/
the new API now returns the string to prepend before the rest of the
script, instead of rewriting the content, which is both faster and
doesn't mislead the perl debugger [Dominique Quatravaux
Starting from ExtUtils::MakeMaker 6.26 went back to pm_to_blib target
from pm_to_blib.ts introduced in 6.22, so needed to fix the glue_pod
target, so install will work correctly [Stas]
Syntax errors in <Perl> sections were not correctly caught and
reported. [Gozer]
when building mp2 EU::MM looks into Apache-Test/MANIFEST and complains
about the missing Apache-Test/META.yml (which is indeed not included
in the modperl package due to the PAUSE problems of dealing with more
than one META.yml. Solution: Exclude Apache-Test/MANIFEST from
mod_perl distribution package. [Stas]
ModPerl::Registry no longer checks for -x bit (we don't executed
scripts anyway), and thus works on acl-based filesystems. Also
replaced the -r check with a proper error handling when the file is
read in. [Damon Buckwalter <[email protected]>]
Apache2::RequestUtil::slurp_filename now throws an APR::Error exception
object (before it was just croaking). [Stas]
fix APR::Error's overload of '==' (it was always returning true
before), and add the corresponding '!=' [Stas]
if $r->document_root was modified, restore it at the end of request
[joes]
Apache2::ServerRec method which set the non-integer fields in the
server_rec, now copy the value from the perl scalar, so if it changes
or goes out of scope the C struct is not affected. Using internal perl
variables to preserve the value, since using the server pool to
allocate the memory will mean a memory leak [Stas]
add the escape_url entry in the ModPerl::MethodLookup knowledgebase
[Stas]
Apache2::SubProcess::spawn_proc_prog now can be called in a void
context, in which case all the communication std pipes will be closed
[Stas]
fix a bug in $r->document_root, which previously weren't copying the
new string away [Stas]
introduce a new build option MP_AP_DESTDIR to aid package builders
direct the Apache-specific files to the right place. [Cory Omand
Fix bug in modperl_package_clear_stash() segfaulting when
encountering declared but not yet defined subroutines.
[Steve Hay <[email protected]>, Gozer]
win32 needs PERL_SYS_INIT3/PERL_SYS_TERM calls [Steve Hay
Fix broken MP_STATIC_EXTS=1 build. [Gozer]
Perl -Duse64bit fix. Pointers can't just be generically
casted from/to IVs. Use PTR2IV/INT2PTR instead. [Gozer]
Perl -Duse64bit fix. apr_size_t pointers can't just be generically
casted from/to UVs. Use PTR2UV/INT2PTR instead. [Gozer]
fix a bug in Apache2::Build::dir: If the right directory isn't found in
the for loop $dir still contains a > value, so the ||= has no
effect. [Nick Wellnhofer <[email protected]>]
=item 1.999_21 - January 22, 2005
PerlPostConfigRequire was trying to detect missing files early on,
but without searching thru @INC, causing false negatives. Better off
skipping that check and leave it to modperl_require_file() to report
problems with finding the file. [Patrick LeBoutillier
<[email protected]>, Gozer]
add a perl bug workaround: with USE_ITHREADS perl leaks pthread_key_t
on every reload of libperl.{a,so} (it's allocated on the very first
perl_alloc() and never freed). This becomes a problem on apache
restart: if the OS limit is 1024, 1024 restarts later things will
start crashing [Gisle Aas <[email protected]>, Stas]
on Irix mod_perl.so needs to see the libperl.so symbols, which
requires the -exports option immediately before -lperl. [Gordon Lack
pool arguments to startup and connection callbacks must be blessed
into APR::Pool and not Apache::Pool class [joes]
Make PerlSetEnv, PerlPassEnv and %ENV in PerlRequre, PerlModule,
PerlConfigRequire and PerlPostConfigRequire affect each other, so a
change in one of these is immediately seen in the others. [Pratik
<pratiknaik gmail.com>, Stas]
=item 1.999_20 - January 5, 2005
the autogenerated modules (and some implemented in xs/ modules) are
now getting the same version number as $mod_perl::VERSION (the
exception are APR modules which get 0.009_000 for now). [Stas]
until we figure out how to tell PAUSE index about versions of the
autogenerated modules, create a fake module which lists all the
autogenerated modules and their versions and include that in the
distro. [Stas]
moving to the triplet version notation, which requires us to bump 1.99
=> 1.999 so 1.999020 (mp2) > 1.29 (mp1). [Stas]
Now we are gong to have:
$mod_perl::VERSION : "1.099020"
int $mod_perl::VERSION : 1.09902
$mod_perl::VERSION_TRIPLET: 1.99.20
<Perl> and PerlPostConfigRequires were leaking some memory at
startup. Use parms->temp_pool instead of parms->pool for temporary
memory allocations. [Gozer]
deal with a situation where an object is used to construct another
object, but it's then auto-DESTROYed by perl rendering the object that
used it corrupted. the solution is to make the newly created objects
refer to the underlying object via magic attachment. only objects
using objects that have DESTROY are effected. This concerns some of
the methods accepting the custom APR::Pool object (not native pools
like $r->pool). [Stas]
Adjusted:
- APR::Brigade: new
- APR::Finfo: stat
- APR::IpSubnet: new
- APR::Table: copy, overlay, make
- APR::ThreadMutex: new
- APR::URI: parse
- Apache::RequestUtil: new
- APR::Pool: new
- APR::BucketAlloc: new
APR::Bucket::alloc_create moved to APR::BucketAlloc::new
APR::Bucket::alloc_destroy moved to APR::BucketAlloc::destroy [Stas]
prefork handlers optimisation: don't dup the handler struct unless
this is a threaded-mpm [Stas]
speed up the 'perl Makefile.PL' stage [Randy Kobes]:
- reduce the number of calls to build_config() of
Apache::Build within ModPerl::BuildMM
- cache the results of the calls to apxs_cflags, apxs_extra_cflags,
and apxs_extra_cppflags in Apache::Build
- in apxs of Apache::Build, return a cached result only when defined
move ModPerl::Util::exit() into mod_perl.so, since it needs to work,
even if ModPerl::Util wasn't loaded [Stas]
=item 1.99_19 - December 23, 2004
$r->hostname is now writable [Gozer]
Static build with a Perl without ithreads and a non-threaded MPM
would segfault on startup. Caused by a bug in perl's perl_shutdown()
code. Fixed in Perl 5.8.2, so it's now a build requirement [Gozer]
replace the added in 1.99_17 code on resetting/restoring PL_tainted,
with explicit reset before and after each each callback. This solves a
complicated tainting issues caused when perl exception object is
thrown. rgs suggested that it should be safe, similar to perl's own
pp_nextstate which says: /* Each statement is presumed innocent */