cvs commit: modperl-2.0/pod modperl_dev.pod
sbekman 01/04/24 19:44:35 Modified:pod modperl_dev.pod Log: to make a full test LWP is required, adding a note about it Revision ChangesPath 1.18 +10 -0 modperl-2.0/pod/modperl_dev.pod Index: modperl_dev.pod === RCS file: /home/cvs/modperl-2.0/pod/modperl_dev.pod,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- modperl_dev.pod 2001/04/24 05:50:28 1.17 +++ modperl_dev.pod 2001/04/25 02:44:34 1.18 @@ -29,6 +29,16 @@ % ./Configure -des -Dprefix=$HOME/bleedperl \ -Dusethreads -Doptimize='-g' -Dusedevel % make make test make install + % ln -s $HOME/bleedperl/bin/perl5.x.x $HOME/bleedperl/bin/perl + +You'll also want to install (at least) LWP into the bleedperl/lib +directory if you want to fully test mod_perl, because normally a +privately installed bleedperl won't find libraries installed in the +normal places; it only looks in it's own lib tree. You can install LWP +with CPAN.pm shell: + + % $HOME/bleedperl/bin/perl -MCPAN -e 'install(LWP)' + =head1 Compiling
cvs commit: modperl-2.0/lib/ModPerl Config.pm
dougm 01/04/24 20:14:44 Modified:lib/ModPerl Config.pm Log: want httpd -V not -v Revision ChangesPath 1.3 +1 -1 modperl-2.0/lib/ModPerl/Config.pm Index: Config.pm === RCS file: /home/cvs/modperl-2.0/lib/ModPerl/Config.pm,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Config.pm 2001/04/20 18:25:45 1.2 +++ Config.pm 2001/04/25 03:14:44 1.3 @@ -20,7 +20,7 @@ my $test_config = Apache::TestConfig-new; my $httpd = $test_config-{vars}-{httpd}; -my $command = $httpd -v; +my $command = $httpd -V; $cfg .= \n\n*** $command\n; $cfg .= qx{$command};
cvs commit: modperl Makefile.PL
sbekman 01/04/24 21:18:24 Modified:.Makefile.PL Log: adding PERL_SSI PERL_SECTIONS to MyConfig generator Revision ChangesPath 1.182 +4 -3 modperl/Makefile.PL Index: Makefile.PL === RCS file: /home/cvs/modperl/Makefile.PL,v retrieving revision 1.181 retrieving revision 1.182 diff -u -r1.181 -r1.182 --- Makefile.PL 2001/04/17 22:42:03 1.181 +++ Makefile.PL 2001/04/25 04:18:22 1.182 @@ -1981,9 +1981,10 @@ # preparing and writing Configuration to Apache::MyConfig my %my_config = %callback_hooks; my @other_hooks = qw(APACHE_SRC SSL_BASE APXS PERL_USELARGEFILES - PERL_TRACE PERL_DEBUG APACI_ARGS APACHE_PREFIX - DO_HTTPD NO_HTTPD PREP_HTTPD USE_APACI - APACHE_HEADER_INSTALL PERL_STATIC_EXTS ); + PERL_TRACE PERL_DEBUG APACI_ARGS + APACHE_PREFIX DO_HTTPD NO_HTTPD PREP_HTTPD + USE_APACI APACHE_HEADER_INSTALL + PERL_STATIC_EXTS PERL_SSI PERL_SECTIONS); { no strict 'refs'; $my_config{$_} = ${$_} for @other_hooks;
cvs commit: modperl-2.0/Apache-Test/lib/Apache TestConfigParse.pm
dougm 01/04/24 21:35:21 Modified:Apache-Test/lib/Apache TestConfigParse.pm Log: save some more info from httpd -V Revision ChangesPath 1.3 +10 -4 modperl-2.0/Apache-Test/lib/Apache/TestConfigParse.pm Index: TestConfigParse.pm === RCS file: /home/cvs/modperl-2.0/Apache-Test/lib/Apache/TestConfigParse.pm,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- TestConfigParse.pm2001/04/13 00:28:46 1.2 +++ TestConfigParse.pm2001/04/25 04:35:20 1.3 @@ -192,11 +192,17 @@ open my $proc, '-|', $cmd or die $cmd failed: $!; while ($proc) { -next unless s/^\s*-D\s*//; -s/\s+$//; chomp; -my($key, $val) = split '=', $_, 2; -$self-{httpd_defines}-{$key} = $val ? strip_quotes($val) : 1; +if( s/^\s*-D\s*//) { +s/\s+$//; +my($key, $val) = split '=', $_, 2; +$self-{httpd_defines}-{$key} = $val ? strip_quotes($val) : 1; +} +elsif (/(version|built|module magic number):\s+(.*)/i) { +my $val = $2; +(my $key = uc $1) =~ s/\s/_/g; +$self-{httpd_info}-{$key} = $val; +} } close $proc;
cvs commit: modperl-2.0/pod modperl_dev.pod
sbekman 01/04/24 22:26:27 Modified:pod modperl_dev.pod Log: documenting my latest build experience based on Doug's helpful notes: * always run 'make testclean' in httpd-2.0 source after cvs up * notes to debug 'make test' * raise the priority of using util/config.pl versus manual approach Revision ChangesPath 1.19 +31 -8 modperl-2.0/pod/modperl_dev.pod Index: modperl_dev.pod === RCS file: /home/cvs/modperl-2.0/pod/modperl_dev.pod,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- modperl_dev.pod 2001/04/25 02:44:34 1.18 +++ modperl_dev.pod 2001/04/25 05:26:27 1.19 @@ -22,6 +22,16 @@ --with-mpm=threaded --enable-so % make make install +Once extracted, whenever you want to sync with the latest httpd-2.0 +version and rebuild, run: + + % cd httpd-2.0 + % cvs up + % make testclean ./buildconf + % ./configure --prefix=$HOME/apache-2.0 \ + --with-mpm=threaded --enable-so + % make make install + For bleeding edge Perl: % rsync -auvz rsync://ftp.linux.activestate.com/perl-current/ perl-current @@ -118,8 +128,6 @@ =back - - Options can also be specified in the file Cmakepl_args.mod_perl2. Command line options override those from Cmakepl_args_mod_perl2 and those from MP_OPTIONS_FILE. @@ -151,9 +159,12 @@ =head1 Support Discussion of mod_perl-2.0 currently takes place on the [EMAIL PROTECTED] list. -Any problems/questions should be report to that list, be sure to -include: [EMAIL PROTECTED] list. Any problems/questions should be report to +that list, be sure to include the output of: + + % perl util/config.pl + +which generates the output from: =over 4 @@ -165,11 +176,23 @@ =back -hint: +You can also use Iutil/bugreport.pl. - % perl util/config.pl +=head1 'make test' Debug + +mod_perl-2.0 provides built in 'make test' debug facility. So in case +you get a core dump during make test, or just for fun, run in one shell: + + % t/TEST -debug + +in another shell: + + % t/TEST -run + +then the I-debug shell will have a (gdb) prompt, type 'where' for +stacktrace. + -will generate this requested information. =head1 mod_perl configuration directives
cvs commit: modperl-2.0/src/modules/perl modperl_interp.c modperl_util.c modperl_util.h
dougm 01/04/24 22:27:17 Modified:src/modules/perl modperl_interp.c modperl_util.c modperl_util.h Log: use apr_os_dso_handle_put/apr_dso_unload rather than the unportable dlclose() Revision ChangesPath 1.32 +1 -1 modperl-2.0/src/modules/perl/modperl_interp.c Index: modperl_interp.c === RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_interp.c,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- modperl_interp.c 2001/04/09 23:57:22 1.31 +++ modperl_interp.c 2001/04/25 05:27:17 1.32 @@ -98,7 +98,7 @@ perl_free(interp-perl); if (handles) { -modperl_xs_dl_handles_close(handles); +modperl_xs_dl_handles_close(p, handles); } apr_pool_destroy(p); 1.9 +8 -5 modperl-2.0/src/modules/perl/modperl_util.c Index: modperl_util.c === RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_util.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- modperl_util.c2001/04/25 03:13:59 1.8 +++ modperl_util.c2001/04/25 05:27:17 1.9 @@ -162,7 +162,7 @@ return handles; } -void modperl_xs_dl_handles_close(apr_array_header_t *handles) +void modperl_xs_dl_handles_close(apr_pool_t *p, apr_array_header_t *handles) { int i; @@ -171,10 +171,13 @@ } for (i=0; i handles-nelts; i++) { - void *handle = ((void **)handles-elts)[i]; - MP_TRACE_g(MP_FUNC, close 0x%lx\n, - (unsigned long)handle); - dlclose(handle); /*XXX*/ +apr_dso_handle_t *dso = NULL; +void *handle = ((void **)handles-elts)[i]; + +MP_TRACE_g(MP_FUNC, close 0x%lx\n, (unsigned long)handle); + +apr_os_dso_handle_put(dso, (apr_os_dso_handle_t )handle, p); +apr_dso_unload(dso); } } 1.10 +1 -1 modperl-2.0/src/modules/perl/modperl_util.h Index: modperl_util.h === RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_util.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- modperl_util.h2001/04/25 03:13:59 1.9 +++ modperl_util.h2001/04/25 05:27:17 1.10 @@ -35,7 +35,7 @@ apr_array_header_t *modperl_xs_dl_handles_get(pTHX_ apr_pool_t *p); -void modperl_xs_dl_handles_close(apr_array_header_t *handles); +void modperl_xs_dl_handles_close(apr_pool_t *p, apr_array_header_t *handles); modperl_cleanup_data_t *modperl_cleanup_data_new(apr_pool_t *p, void *data);
cvs commit: modperl-2.0/pod modperl_dev.pod
dougm 01/04/24 22:38:41 Modified:pod modperl_dev.pod Log: fixo Revision ChangesPath 1.20 +2 -2 modperl-2.0/pod/modperl_dev.pod Index: modperl_dev.pod === RCS file: /home/cvs/modperl-2.0/pod/modperl_dev.pod,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- modperl_dev.pod 2001/04/25 05:26:27 1.19 +++ modperl_dev.pod 2001/04/25 05:38:41 1.20 @@ -26,8 +26,8 @@ version and rebuild, run: % cd httpd-2.0 - % cvs up - % make testclean ./buildconf + % cvs up -dP + % make distclean ./buildconf % ./configure --prefix=$HOME/apache-2.0 \ --with-mpm=threaded --enable-so % make make install
cvs commit: modperl-2.0/pod modperl_dev.pod
sbekman 01/04/24 22:54:57 Modified:pod modperl_dev.pod Log: another important note: cleanup in the Perl source Revision ChangesPath 1.21 +6 -0 modperl-2.0/pod/modperl_dev.pod Index: modperl_dev.pod === RCS file: /home/cvs/modperl-2.0/pod/modperl_dev.pod,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- modperl_dev.pod 2001/04/25 05:38:41 1.20 +++ modperl_dev.pod 2001/04/25 05:54:54 1.21 @@ -41,6 +41,12 @@ % make make test make install % ln -s $HOME/bleedperl/bin/perl5.x.x $HOME/bleedperl/bin/perl +If you are re-building Perl after cvs update, make sure to cleanup: + + % make distclean + +before running C./Configure. + You'll also want to install (at least) LWP into the bleedperl/lib directory if you want to fully test mod_perl, because normally a privately installed bleedperl won't find libraries installed in the
cvs commit: modperl-2.0/pod modperl_dev.pod
dougm 01/04/24 23:10:07 Modified:pod modperl_dev.pod Log: Perl does not use cvs Revision ChangesPath 1.22 +1 -1 modperl-2.0/pod/modperl_dev.pod Index: modperl_dev.pod === RCS file: /home/cvs/modperl-2.0/pod/modperl_dev.pod,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- modperl_dev.pod 2001/04/25 05:54:54 1.21 +++ modperl_dev.pod 2001/04/25 06:10:05 1.22 @@ -41,7 +41,7 @@ % make make test make install % ln -s $HOME/bleedperl/bin/perl5.x.x $HOME/bleedperl/bin/perl -If you are re-building Perl after cvs update, make sure to cleanup: +If you are re-building Perl after rsync-ing, make sure to cleanup: % make distclean