Mod_Perl 2.0.0 final is out!
rob
|
1#
rob 发表于 2005-05-20 20:33
Mod_Perl 2.0.0 final is out!
Mod_Perl 2.0.0 final is out!
[b]Mod_Perl 2.0.0 final is out![/b] [b][u]CHANGES[/u][/b] all changes without author attribution are by Doug MacEachern Also refer to the Apache::Test changes log file, at Apache-Test/Changes [u]2.000_00 - May 20, 2005[/u] 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. [Nick *** <doink123@abv.bg>] 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 [Nick *** <doink123@abv.bg>] Show MP_APU_CONFIG as an argument to Makefile.PL in the Usage menu. [Nick *** <doink123@abv.bg>] 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. [Nick *** <doink123@abv.bg>] [u]1.999_23 - May 3, 2005 - RC6[/u] fix Apache2::Build::dynamic_link_MSWin32 to generate a new line after dynamic_link code in Makefile [Nick *** <doink123@abv.bg>] fix a warning in Apache2::Build::build_config() when building with MP_STATIC_EXTS=1 [Nick *** <doink123@abv.bg>] 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. [Nick *** <doink123@abv.bg>] 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] [u]1.999_22 - April 14, 2005 - RC5[/u] [quote][b] ******************** 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. *************************************************** [/b][/quote] 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 <pgollucci@p6m7g8.com>] 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 <chwarren@cisco.com>] cygwin fixes: [Nick *** <doink123@abv.bg>] - 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 <dom@idealx.com>] 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 <buckwad@gmail.com>] 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 <Cory.Omand@Sun.COM>] Fix bug in modperl_package_clear_stash() segfaulting when encountering declared but not yet defined subroutines. [Steve Hay <steve.hay@uk.radan.com>, Gozer] win32 needs PERL_SYS_INIT3/PERL_SYS_TERM calls [Steve Hay <steve.hay@uk.radan.com>] 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 <wellnhofer@aevum.de>] [url]http://search.cpan.org/~gozer/mod_perl-2.0.0/[/url]
|